javascript – 角色:获得触发$watch的原因

前端之家收集整理的这篇文章主要介绍了javascript – 角色:获得触发$watch的原因前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
一个很简单的问题:从角度来说,有没有办法获得一个$watch的“根本原因”被触发?

假设您有以下JavaScript代码

$scope.$watch("foo",function(value){
    // here I'd like to know if the change is triggered 
    // due to change in ngModel or through ngClick
};

$scope.changeFoo = function(){
    $scope.foo = "bar"
};

这是HTML:

<input ng-model="foo">
<button ng-click="changeFoo()">Change Foo > Bar</button>

在我的$手表中,我想知道是什么导致它被解雇.在这种情况下,ngModel是否发生变化,或者ngClick的功能是否改变了我的价值?

解决方法

不,没有办法在当前的实现中做到这一点.

$watch被触发,运行一个名为$apply的函数.该功能不知道谁触发了它.

您将需要另一个观点来解决您的问题.

猜你在找的JavaScript相关文章