演示在这里
简单问题:在下面的代码中我只调用该函数isSpecificPage()
一次,为什么console.log两次?
<div ng-hide="isSpecificPage()">
<p>Hello!</p>
</div>
Angular 监视你的ng-hide
函数,以便每个摘要循环它都可以查看结果是否发生变化(因此是否需要从隐藏更改为显示元素,反之亦然)。
当监视函数被评估时(在$digest
)如果其中任何一个与之前相比发生了变化$digest
那么 Angular 就知道更改可能会波及到其他监视函数(也许更改的变量在另一个监视函数中使用)。因此,每个手表都会被重新评估(也称为脏处理),直到没有一个手表导致变化。因此,通常您会看到每个摘要对监视函数进行 2 次调用,有时甚至更多(最多 10 次,循环 10 次后就会放弃并报告错误,指出它无法稳定)。
这里有更多关于watch
and digest
:
http://docs.angularjs.org/api/ng.$rootScope.范围
http://www.benlesh.com/2013/08/angularjs-watch-digest-and-apply-oh-my.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)