控制器和指令之间的范围共享

时间:2014-03-18 09:44:10

标签: angularjs angular-ui

我对一个简单的范围变量有一些奇怪的行为,当我更改其内容时,该变量不会进入观察者:

$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上的错误使用有关,所以如果有人能找到并解释我错过了什么;)

1 个答案:

答案 0 :(得分:2)

您所要做的就是在指令的模板中使用ng-model,它按预期工作。

http://jsfiddle.net/pvYSu/35/

<div>
    Name: <input type="text" ng-model="customerInfo.name" />
    Address: {{customerInfo.address}}
</div>

您实际上也不需要一个孤立的范围。

http://jsfiddle.net/pvYSu/36/