我試圖用三個指令 - 容器,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
和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
範圍,以獲取和設置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
可以訪問使用$scope.$parent.$parent.value
的container
範圍,但似乎太笨重。我認爲使用scope:{value:'='}
會建立雙向綁定,但顯然不是。
我在做什麼錯?
http://plnkr.co/edit/CoYLuVbiZTFWvNsN5r5L?p=preview
這可能是你想要的嗎? http://plnkr.co/edit/poW8JNbf1wrGNb7K0WBy?p=preview – Sam