为什么像ng-show (或其他)指令中的任何表达式检查都是重复的?我做了一个简单的http://jsfiddle.net/fA5YX/例子。见浏览器控制台。
<div ng-app ng-controller="ctrl" ng-show="test()">shown</div>
<script>
function ctrl($scope) {
$scope.test = function() {
console.log('check');
return true;
}
}
</script>怎么让它停下来?我只需要一张支票。
发布于 2013-10-13 18:09:59
也许链接到Controller function getting called twice using ng-show -引用如下:
在每个摘要周期,对于每个表,AngularJS对关联表达式进行评估,以查看是否有任何更改,如果存在,则调用侦听器(在
ng-show/ng-hide的情况下,侦听器将根据ready()返回的值显示或隐藏元素)。
发布于 2013-10-13 18:20:15
每个观察者都在消化周期运行。摘要循环被重复,直到所有的结果都没有改变值(或者当角保护无限循环时)。这就是为什么您的观察者多次运行的原因。底线是,不要只依靠观察者被发射一次,因为这违反了基本的基本规则,为什么角的工作。
如果你贴出你想要达到的目标的细节,我们也许能引导你走向一个在角度哲学中工作的模式。
https://stackoverflow.com/questions/19348406
复制相似问题