与angularJS的混淆

与angularJS的混淆,angularjs,Angularjs,我是angularJS的新手,最近开始学习。我有以下的测试程序- {{testInput}} 角度模块('rAPP',[])) .controller('testController',['$scope', 职能($范围){ 警报(测试输入); var计数器=0; $scope.$watch(“mod”,function(){ 计数器+=1; $scope.mod=计数器; 警报(计数器); }); } ]); 您的问题是无限循环 错误:$rootScope:infdig 无限$摘要循环 已

我是angularJS的新手,最近开始学习。我有以下的测试程序-


{{testInput}}
角度模块('rAPP',[]))
.controller('testController',['$scope',
职能($范围){
警报(测试输入);
var计数器=0;
$scope.$watch(“mod”,function(){
计数器+=1;
$scope.mod=计数器;
警报(计数器);
});
}
]);

您的问题是无限循环

错误:$rootScope:infdig 无限$摘要循环

已达到10$digest()迭代次数。流产

观察者在过去的5次迭代中开火:[[{“msg”:“mod”,“newVal”:6,“oldVal”:5},{“msg”:“mod”,“newVal”:7,“oldVal”:6},{“msg”:“mod”,“newVal”:7,“oldVal”:6},{“msg”:“mod”,“newVal”:8,{“msg”:“mod”,“newVal”:7},{“msg”:“mod”,“newVal”:8},{“msg”:“msg”:“mod:“mod”,“newVal”:10,“oldVal”:9},{“msg”:“mod”,“newVal”:11,“oldVal”:10}]]

这就是它以1110+1的形式出现的原因


点击链接了解更多信息:

您的问题是无限循环

错误:$rootScope:infdig 无限$摘要循环

已达到10$digest()迭代次数。流产

观察者在过去的5次迭代中开火:[[{“msg”:“mod”,“newVal”:6,“oldVal”:5},{“msg”:“mod”,“newVal”:7,“oldVal”:6},{“msg”:“mod”,“newVal”:7,“oldVal”:6},{“msg”:“mod”,“newVal”:8,{“msg”:“mod”,“newVal”:7},{“msg”:“mod”,“newVal”:8},{“msg”:“msg”:“mod:“mod”,“newVal”:10,“oldVal”:9},{“msg”:“mod”,“newVal”:11,“oldVal”:10}]]

这就是它以1110+1的形式出现的原因


点击链接了解更多信息:

您需要有参数来验证旧值与过去的值不同,因此当值更改时,它只增加一次


{{testInput}}
角度模块('rAPP',[]))
.controller('testController',['$scope',
职能($范围){
var计数器=0;
$scope.$watch(“mod”,函数(newVal,oldVal){
if(newVal的类型!==oldVal){
计数器++;
警报(“计数器=”+计数器);
}
});
}
]);

您需要有一些参数来验证旧值与过去的值是否不同,以便在值更改时只增加一次


{{testInput}}
角度模块('rAPP',[]))
.controller('testController',['$scope',
职能($范围){
var计数器=0;
$scope.$watch(“mod”,函数(newVal,oldVal){
if(newVal的类型!==oldVal){
计数器++;
警报(“计数器=”+计数器);
}
});
}
]);
哦,是的,明白了

Error: $rootScope:infdig
Infinite $digest Loop
当应用程序的模型变得不稳定且 每个$digest循环都会触发状态更改和后续的$digest 循环

乐于助人

哦,是的,明白了

Error: $rootScope:infdig
Infinite $digest Loop
当应用程序的模型变得不稳定且 每个$digest循环都会触发状态更改和后续的$digest 循环


乐于助人

对我来说,它显示了11次,你有一个循环依赖。您监视
mod
,但在监视处理程序中更改了它。对不起,请删除此行-$scope.mod=counter;然后你会看到“value”,而不是“value1”或“value11”。你能详细解释一下循环依赖关系吗?当我在listener中更改mod的值时,它是如何导致侦听器运行11次的?它显示了11次。您监视
mod
,但在监视处理程序中更改了它。对不起,请删除此行-$scope.mod=counter;然后你会看到“value”,而不是“value1”或“value11”。你能详细解释一下循环依赖关系吗?当我在监听器内部更改mod的值时,它是如何导致监听器运行11次的