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
函数中加引号,这可能有助于消除一些混淆。好的,谢谢。但我不明白为什么它在控制器初始化时起作用,而不是在…之后。。。。对我来说没有意义。好的,那就行了,谢谢。但我不明白为什么它在控制器初始化时起作用,而不是在…之后。。。。对我来说没有意义。