我正在尝试使用三个指令设置一个角度应用程序 - 容器、getter 和 setter。我把它放在 http://plnkr.co/edit/CoYLuVbiZTFWvNsN5r5L?p=preview
<container>
<getter name="first"></getter>
<getter name="second"></getter>
<setter name="setter"></setter>
</container>
Container
具有变量的范围value
,可以通过getter
and读取setter
。getter
显示值,setter
同时显示和更改值。
angular.module("app").directive('container', function() {
return {
scope: {},
template: '<h1>Container <input ng-model="value"/></h1><div ng-transclude>SCOPED1</div>',
transclude: true,
controller: ["$scope", "$window", function($scope, $window){
$scope.value = "Hello"
}]
};
});
两者getter
和setter
都有自己的隔离范围,但也有双向绑定container
到 get 和 set 的范围value
。
angular.module("app").directive('getter', function() {
return {
require: '^container',
scope: {
name: '@',
value:'='
},
template: '<p>I am getter {{name}}, I got {{value}}</p>'
};
});
目前,getter
可以setter
使用访问container
范围,$scope.$parent.$parent.value
但这似乎太笨重了。我认为 usingscope:{value:'='}
会设置两种方式绑定,但显然不是。
我究竟做错了什么?