【发布时间】:2015-04-07 16:13:33
【问题描述】:
我正在尝试使用三个指令(容器、getter 和 setter)设置 Angular 应用程序。我把它放在 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:'='} 会设置两种方式绑定,但显然不是。
我做错了什么?
【问题讨论】:
标签: javascript angularjs isolate-scope