Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 angularjs:$watch未触发_Javascript_Angularjs - Fatal编程技术网

Javascript angularjs:$watch未触发

Javascript angularjs:$watch未触发,javascript,angularjs,Javascript,Angularjs,试着做一些简单的事情 在我的控制器中: $scope.testObject = { name : 'john' }; $scope.$watch('$scope.testObject.name', function (e, n, v) { console.log('reached'); }); 我认为: <input type="text" ng-model="testObject.name"/> 文本框绑定到testObject的name属性

试着做一些简单的事情

在我的控制器中:

  $scope.testObject = { name : 'john' };

  $scope.$watch('$scope.testObject.name', function (e, n, v) {
      console.log('reached');
  });
我认为:

  <input type="text"  ng-model="testObject.name"/>

文本框绑定到testObject的name属性,当加载控制器时,代码进入$watch函数

现在,如果我编辑文本框值,$watch函数永远不会被触发。为什么呢


我还尝试将$watch的第三个参数设置为true,但没有效果。

从手表中删除$scope。应改为:

$scope.$watch('testObject.name', function(e,n,v){
    console.log("reached");
});

从手表中删除$scope。应改为:

$scope.$watch('testObject.name', function(e,n,v){
    console.log("reached");
});
使用以下命令:

$scope.$watch('testObject.name', function(e,n,v){
    console.log("reached");
});
您还可以添加其他观察者,如下所示:

$scope.$watch('testObject.attr1 + testObject.attr2', function(e,n,v){
    console.log("reached");
});
或:

使用以下命令:

$scope.$watch('testObject.name', function(e,n,v){
    console.log("reached");
});
您还可以添加其他观察者,如下所示:

$scope.$watch('testObject.attr1 + testObject.attr2', function(e,n,v){
    console.log("reached");
});
或:


$scope.testObject.name
是否应该在
$watch
函数中加引号?这可能有助于消除一些混淆。如果
$scope.testObject.name
应该在
$watch
函数中加引号,这可能有助于消除一些混淆。好的,谢谢。但我不明白为什么它在控制器初始化时起作用,而不是在…之后。。。。对我来说没有意义。好的,那就行了,谢谢。但我不明白为什么它在控制器初始化时起作用,而不是在…之后。。。。对我来说没有意义。