考虑一下这个傻瓜:
http://plnkr.co/edit/iEU0gZQTtj22Eo2Ncr92?p=preview
//controller
$scope.count =0;
$scope.add = function(){
$scope.count++;
};
我想要实现的就是:
每当我的html遇到$ scope.add函数时,都会增加1。
出于某种原因,它增加了10,任何原因?
答案 0 :(得分:0)
您正在初始化范围之外的计数并调用添加两次。我在范围内定义了count并得到了结果。 看看这个
[1]: http://plnkr.co/edit/3NQye0axRwdpsl2kf4lq?p=preview
是的,这是一种奇怪的行为,但你可以通过点击等触发事件来实现这一点。或者ng-init并调用你的函数。看一看。我不知道这会做你的工作还是不看。谢谢。
updated link
答案 1 :(得分:-1)
我的样本不是一个好的解决方案,但它有效。您的问题是由于错误:$ rootScope:infdig Infinite $ digest Loop。您可以查看here中的详细信息。
但如果你真的想,请查看这个jsfiddle http://jsfiddle.net/meazuri/oqznnjrd/1/。 这是控制器
var myApp = angular.module('myApp',[],function($rootScopeProvider) {
$rootScopeProvider.digestTtl(0);
});
function MyCtrl($scope) {
$scope.myInit = function(){
$rootScopeProvider.digestTtl(1);
}
$scope.name = 'Superhero';
$scope.count =0;
$scope.added = function(){
$scope.count += 1;
}
}
这是html文件
<div ng-controller="MyCtrl">
{{count}}
{{added()}}
{{count}}
{{added()}}
{{count}}
</div>
我是通过将$ digest迭代次数设置为0来创建的。
digestTtl(极限); 设置范围在放弃之前应尝试执行的$ digest迭代次数,并假设模型不稳定。
当前默认值是10次迭代。