[英]Angular js passing a variable from a parent directive to a child directive
我有兩個指令。 父母和孩子。 我想將一個變量傳遞給父指令,並使其可被多個子代訪問。 這是指令:
directives.directive('supNavDirective', function () {
return {
restrict: "E", //declare by element
replace: true,
scope: {
navtree: '='
},
controller: function ($scope, $element) {
$scope.returnNavTree=function(){
return $scope.navtree
}
},
link: function (scope, element, attrs) {
}
}
})
directives.directive('collection', function () {
return {
require:"supNavDirective",
restrict: "E", //declare by element
link: function (scope, element, attrs,superDir) {
scope.collection = superDir.returnNavTree()
},
template: "<ul class=\"nav nav-list tree\"><member ng-repeat=\"member in collection\" member=\"member\"></member></ul>"
}
})
這是html:
<superNavDirective collection navtree="analyticsNavTree"></superNavDirective>
子指令似乎沒有獲得該變量。 為什么不?
首先,“需要”父控制器的正確語法是:
require:"^supNavDirective"
其次,必須將returnNavTree
方法添加到控制器實例本身(而不是$scope
)以從子指令訪問它,如下所示:
...
controller: function ($scope, $element) {
this.returnNavTree = function(){
return $scope.navtree
}
},
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.