AngularJS过滤器刷新占位符

时间:2018-08-14 14:37:47

标签: javascript html angularjs angularjs-filter

我正在使用过滤器来本地化我的页面。 除非键是表达式(或对象),否则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) }}" />

enter image description here 有任何想法吗? 我知道有状态过滤器-这对我不起作用,因为我还有很多其他页面需要重新加载以进行lozalisation

2 个答案:

答案 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就会知道元素的属性值将是表达式而不是字符串。这样,它可以是任何类型(布尔值,数字,字符串,函数,对象等)

相关问题