有没有办法阻止angularjs观察变量的变量?

时间:2015-01-29 18:25:09

标签: angularjs

我有一个我需要放入模板的变量,但它只是创建并且从未更新或删除。但是,它在模板的多个区域中被引用。它用于ng-repeat,因此它是一个对象。不确定这是否重要。

但是我想引用变量一次并阻止angularjs观看它。这可能吗?

1 个答案:

答案 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>