Angular中如何将插值翻译字符串作为函数参数传递
Angular 翻译管道在事件绑定中未解析的解决方案
问题出在你把模板插值语法{{...}}直接嵌套进了事件绑定的括号里,Angular在事件绑定的表达式上下文中不会解析这种插值语法,导致传递给toggleTips的是字符串字面量{{tootltip_val|translate}},而不是翻译后的实际内容。
解决方法很简单,直接在事件绑定里使用翻译管道表达式即可,不需要加插值符号:
- 把事件绑定里的
'{{tootltip_val|translate}}'替换成('tooltip_val'|translate)(注意修正拼写错误:tootltip_val多了一个o,应该是tooltip_val)
修改后的完整代码:
<input type="text" class="form-control" placeholder="{{'placeholder_val'|translate}}" ngModel name="name" [ngbPopover]="tipContent" popoverClass="help-tips" [autoClose]="'outside'" triggers="manual" #p1="ngbPopover" (click)="toggleTips(p1, ('tooltip_val'|translate))">
原理是Angular的事件绑定()内部支持直接执行表达式,包括管道调用,用括号包裹管道表达式可以确保优先级正确,让翻译管道先执行,再把结果传递给toggleTips函数。
内容的提问来源于stack exchange,提问作者Bharat Godam
相关产品推荐
相关产品推荐

