我最近开始研究AngulaJs中的摘要和性能改进,并在我的网站上发现我使用了大量的ng-if
。
有时在ng-if
中有一个变量可能会发生变化,但通常会在控制器启动时修复,然后永远不会更改。
我应该怎样做以提高性能,避免使用摘要来评估那些不可更改的ng-if
循环?我应该改变指令吗?用什么?
E.g
在我的标题模板中,我有一个只能由特定类型的用户看到的div。它只是一个div,所以我不想调用一些不同的模板。
我把<div ng-if="userIsSuperior()"> ... </div>
首次评估时,userIsSuperior()
的返回值永远不会改变(当然在此会话期间),但我知道AngularJs Digest会在每个循环中对其进行评估。
我怎么能避免这个?或者我错过了什么?
答案 0 :(得分:2)
我认为你要找的是one-time binding。
如果您使用:
<div ng-if="::userIsSuperior()"> ... </div>
然后userIsSuperior()
的值只计算一次,并且会坚持该值。
请参阅demo。
答案 1 :(得分:1)