Angularjs 理解bindonce限制
我一直在读关于减少手表数量和提高性能的文章。为了更好地理解这个包,我用Angularjs 理解bindonce限制,angularjs,angularjs-directive,bindonce,Angularjs,Angularjs Directive,Bindonce,我一直在读关于减少手表数量和提高性能的文章。为了更好地理解这个包,我用ng repeat做了一个例子 如果没有bindonce,我将得到103块手表,100个列表项+2个按钮 使用bindonce我得到了3块手表,2块手表+1块手表 如果我正确理解了binonce,则在解析和渲染绑定对象后,它会移除手表。所以 使用bindonce,对对象所做的更改怎么可能仍然反映在DOM中?文档中有一个提示: 现在,此示例每人使用0个手表,并呈现与上面使用ng-的结果完全相同的结果*(Angular仍使用1台
ng repeat
做了一个例子
如果没有bindonce,我将得到103块手表,100个列表项+2个按钮
使用bindonce
我得到了3块手表,2块手表+1块手表
如果我正确理解了binonce
,则在解析和渲染绑定对象后,它会移除手表。所以
使用
bindonce
,对对象所做的更改怎么可能仍然反映在DOM中?文档中有一个提示:
现在,此示例每人使用0个手表,并呈现与上面使用ng-的结果完全相同的结果*(Angular仍使用1台手表作为ngRepeatWatch)
关键是Angular仍在监视ngRepeat
,因此,如果阵列发生变化ngRepeat
将重新渲染阵列,并重新应用bindonce
功能
我已经更新了您的文档,以便更好地说明这一点
请注意以下添加内容:
<p>
Bindonce: first item:
<span bindonce="arr" bo-bind="arr[0]"></span>
</p>
Bindonce:第一项:
上面的代码在第一个数组项上使用了bindonce
,没有使用ngRepeat的手表,您将看到该值没有按照ngRepeat中的bindonce更新