我做了一个过滤器,用翻译替换了键。
<label>{{'city' | translate}}</label>
过滤器只是city
在json文件中查找键并返回值。
我没有意识到的是过滤器正在运行……很多。经过研究,我发现有更好的方法可以做到这一点,但我不愿意进行完整的重构。
我如何简单地告诉此过滤器每个键仅运行一次。
作为一种解决方法,我正在预编译模板,并用translate
正确的字符串替换对的调用。这适用于大多数情况,但是在某些情况下,键是动态的,或者转换是将范围变量作为参数的函数
<label>{{'greeting' | translate:firstName:lastName}}</label>
我希望Angular一次性替换这些,而不再考虑。
我希望Angular一次性替换这些,而不再考虑。
这有点模棱两可。如果范围变量改变了怎么办?您是否希望过滤器每次更改都运行?还是您真正的意思是,当第一次编译DOM时,然后将范围变量具有的任何值传递给过滤器,求值并静态设置为DOM?如果是后者,我建议您使用angular-bindonce,它提供了从作用域到DOM的监视绑定。
将模块作为依赖项添加到您的应用程序后,标记如下所示:
<label bo-text="city|translate"</label>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句