我正在使用过滤器来本地化我的页面。 除非键是表达式(或对象),否则AngularJS过滤器仅在键更改时才刷新,然后在每个摘要周期对其求值。 https://docs.angularjs.org/guide/filter
所以不要写这个:
<div>{{'name' | localFilter}}</div>
我使用了一个小技巧,并写了“名称”作为表达式,以在每个摘要周期触发过滤器刷新。我定义了变量localize = true
<div>{{localize && ('name' | localFilter)}}</div>
成功了。但是当我需要对占位符进行本地化时,它不起作用,如您从代码段中看到的那样,本地化值具有ja-Jp前缀,但占位符没有
<input id="username" type="text" ng-attr-placeholder="{{localize && ('example_email' | localFilter) }}" />
答案 0 :(得分:1)
在list2
中,您可以使用angular.js
属性来呈现ng-attr-X
属性。
因此,请尝试使用X
。
ng-attr-placeholder
答案 1 :(得分:1)
好吧,正如在vp_arth的答案中的评论所说。标签令人困惑。如果这是一个AngularJS问题,请参考vp_arth的答案,否则请执行以下操作:
<input id="username" type="text" [placeholder]="localize && ('example_email' | localFilter)" />
这样,Angular就会知道元素的属性值将是表达式而不是字符串。这样,它可以是任何类型(布尔值,数字,字符串,函数,对象等)