gpt4 book ai didi

javascript - 当我在 $watch 中更改观察者模式时,Angular Watch 不会触发

转载 作者:行者123 更新时间:2023-12-03 05:25:28 25 4
gpt4 key购买 nike

我正在调用工厂服务来增加计数器值,当计数器值大于 5 时,我将再次调用 watch 内的同一工厂服务。我正在使用 watch 查看更改后的计数器值。

我的问题是,当计数器变得大于 5 时,它会调用服务,但是当再次在 watch 内部时,它会调用工厂服务,它会停止调用服务,按照我的说法,它应该进入无限循环,对吧?因为当调用工厂服务时,计数器仍然大于 5。

当在 watch 内部修改模态值时, watch 是否会停止检查模态值?

Here是 fiddle

JS代码

var app = angular.module('myApp', []);

app.factory('testFactory', function(){
return {
incrementCount:function(a){
a++;
console.log('called service'+a)
return a;
}
}
});


function HelloCtrl($scope, testFactory)
{
$scope.counter = testFactory.incrementCount(5);
$scope.$watch('counter', function (newValue, oldValue) {
if($scope.counter > 5){
$scope.counter = testFactory.incrementCount($scope.counter);
}
});
}

html代码

<div ng-controller="HelloCtrl">
<p>{{counter}}</p>
</div>

最佳答案

因为你的条件$scope.counter > 5//=== false

您可以将其设置为$scope.counter >= 5,或者我建议一种新方法来做到这一点

Check this link

关于javascript - 当我在 $watch 中更改观察者模式时,Angular Watch 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41160737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com