“破坏”ng-if一旦表达式为真

时间:2015-11-30 15:56:26

标签: javascript angularjs

我想知道一旦它的值为真,是否可以取消绑定/销毁ng-if

我使用recurrence指令创建了树结构,每个分支都有<div ng-if="visible">,可以跟踪是否需要渲染元素。问题是该解决方案增加了观察者的数量,因为每个ng-if创建一个新的观察者。一旦ng-if表达式变为true,它就不会改变,因此可以删除监视,在这种情况下有没有办法“销毁”ng-if

2 个答案:

答案 0 :(得分:6)

如果使用角度1.3+,你可以做

<div ng-if="::visible">

这将删除角度观察列表中的表达式,基本上没有手表。将其用于应用中的任何单个绑定表达式。保持手表数量较低,消化周期更快。

答案 1 :(得分:2)

您可以使用恰好具有bo-if = "condition"指令属性的bindonce library,其描述如下:

  

相当于ng-if但不使用观察者

所以有点类似于你想要实现的目标。