首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我在$watch中改变观察模式时,角表不会触发

当我在$watch中改变观察模式时,角表不会触发
EN

Stack Overflow用户
提问于 2016-12-15 09:33:25
回答 1查看 79关注 0票数 0

我调用一个工厂服务来增加计数器值,当计数器值大于5时,我再次调用手表内的同一个工厂服务。我正在使用手表来查看已改变的计数器值。

我的问题是,当计数器变得更大时,它调用服务,但是当它再次在内部看到它调用工厂服务时,它停止了调用服务,对我来说,它应该是无限循环的,对吗?因为当调用工厂服务时,计数器仍然大于5。

在手表内部修改时,手表是否停止检查模态值?

这里是最爱的人

JS码

代码语言:javascript
运行
复制
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代码

代码语言:javascript
运行
复制
<div ng-controller="HelloCtrl">
    <p>{{counter}}</p>
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-15 10:03:41

因为你的情况$scope.counter > 5 // === false

你可以把它做成$scope.counter >= 5或者我建议一种新的方法

检查这个链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41160737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档