Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度:获取触发$watch的原因_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript 角度:获取触发$watch的原因

Javascript 角度:获取触发$watch的原因,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,一个非常简短的问题:在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(){

一个非常简短的问题:在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>

更改Foo>Bar

在我的
$watch
中,我想知道是什么导致它被解雇的。在这种情况下,是
ngModel
中的更改,还是
ngClick
功能中的我的值更改?

否,当前的实现无法做到这一点

$watch
通过运行名为
$apply
的函数触发。那个函数不知道是谁触发的


您需要另一个视角来解决问题。

不,我们不知道是哪一个引发了问题。检查这个问题,也许尝试编写一个自定义指令将更多信息传递给您的控制器是获得触发器的一种可能方式。

我不是100%确定,但我认为没有办法知道。但无法证明这一点。有趣的问题谢谢你的链接问题,我来看看!我担心这就是答案,需要检查它是否在2.0的路线图上。谢谢你的回答!