Angular模板三元表达式内translate管道无法读取JSON翻译数据问题求助
问题原因
代码异常的核心原因是 Angular 模板的插值语法{{}}不支持嵌套使用:
- 外层已经用
{{}}包裹了整个三元判断逻辑,内部字符串中再次嵌套的{{}}不会被Angular模板解析器识别,translate管道无法正常触发执行,自然无法读取JSON翻译文件中的对应内容。 - placeholder场景写法可以正常运行,是因为该场景仅存在一层
{{}}插值符号,没有嵌套冲突,管道可以正常被解析执行。
解决方法
直接删除内层嵌套的{{}}和多余的双引号,把翻译管道表达式作为三元分支的返回值直接使用即可,建议给翻译表达式包裹一层括号避免运算符优先级问题:
<i>{{ exform.get('firstname').hasError("required") ? ('hospitaladmin.firstname.error.required' | translate) : '' }}</i>
内容的提问来源于stack exchange,提问作者newbie
相关产品推荐
相关产品推荐

