我有一个我需要放入模板的变量,但它只是创建并且从未更新或删除。但是,它在模板的多个区域中被引用。它用于ng-repeat,因此它是一个对象。不确定这是否重要。
但是我想引用变量一次并阻止angularjs观看它。这可能吗?
答案 0 :(得分:2)
你熟悉bind一次吗?
Angular在内部为每个ng- *指令创建一个$ watch以保持数据为最新,因此在此示例中仅显示少量信息,即使该人创建了6 + 1(ngRepeatWatch)观察者一旦显示就应该保持不变。为每个人迭代这个金额,你可以知道达到2000观察者是多么容易。现在,如果您需要它,因为这些数据可能会在您显示页面时发生变化或者绑定到某些模型,那就没关系。但大多数情况下,它们是静态数据,一旦渲染就不会改变。这就是bindonce可以真正帮助你的地方。
https://github.com/Pasvaz/bindonce
<ul>
<li bindonce ng-repeat="person in Persons">
<a bo-href="'#/people/' + person.id"><img bo-src="person.imageUrl"></a>
<a bo-href="'#/people/' + person.id" bo-text="person.name"></a>
<p bo-class="{'cycled':person.generated}" bo-html="person.description"></p>
</li>
</ul>