加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 为什么$watch没有开火

发布时间:2020-12-17 07:08:29 所属栏目:安全 来源:网络整理
导读:我试图使用$watch,但是当我期望它时它不会被触发. 当$scope.string发生变化时,为什么下面的代码没有触发? $scope.string = 'Hello.';$scope.timesChanged = 0;$scope.$watch('string',function (newValue) { $scope.timesChanged =+ 1;});$scope.string = '
我试图使用$watch,但是当我期望它时它不会被触发.

当$scope.string发生变化时,为什么下面的代码没有触发?

$scope.string = 'Hello.';
$scope.timesChanged = 0;

$scope.$watch('string',function (newValue) {
    $scope.timesChanged =+ 1;
});

$scope.string = 'How are you';
$scope.string = 'doing today?';

这是一个fiddle

解决方法

它不会触发,因为Angular无法知道您在声明后立即更改了字符串.在这种情况下,没有任何东西可以触发新的摘要循环,因此$watch不会触发.基本上这和你写的一样

$scope.string = 'Hello.';
$scope.string = 'How are you';
$scope.string = 'doing today?';

$scope.timesChanged = 0;

$scope.$watch('string',function (newValue) {
    $scope.timesChanged =+ 1; // you probably want += 1 here.
});

Watcher在字符串变量初始化的同一摘要循环执行中注册.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读