我对一个简单的范围变量有一些奇怪的行为,当我更改其内容时,该变量不会进入观察者:
$scope.test = "test";
$scope.$watch('test', function (newVal, oldVal) {
console.log("watcher=>"+newVal);
});
但是当我传递一个物体时它起作用:
$scope.test = {title: "test"};
$scope.$watch('test.title', function (newVal, oldVal) {
console.log("watcher=>"+newVal);
});
我无法在小提琴上重现这种行为:http://jsfiddle.net/pvYSu/33/
编辑:
我在这个小提琴中重现了我的问题:http://jsfiddle.net/pvYSu/34/ 我认为这与Angular上的错误使用有关,所以如果有人能找到并解释我错过了什么;)
答案 0 :(得分:2)
您所要做的就是在指令的模板中使用ng-model
,它按预期工作。
<div>
Name: <input type="text" ng-model="customerInfo.name" />
Address: {{customerInfo.address}}
</div>
您实际上也不需要一个孤立的范围。