[英]Angular: obtain cause of a $watch to be triggered
一个非常简短的问题:在Angular中,有什么办法可以获得触发$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>
在我的$watch
我想知道导致它被解雇的原因。 在这种情况下,它是ngModel
的变化还是我的值在ngModel
的功能中ngClick
?
不,当前的实施没有办法做到这一点。
$watch
被触发运行一个名为$apply
的函数。 该功能不知道是谁触发了它。
您将需要另一个视角来解决您的问题。
不,我们无法知道触发它的原因。 检查这个问题如何获取dom-element-that-triggered-ng-change ,可能尝试编写自定义指令以将更多信息传递给控制器,这是一种获取触发器的可能方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.