簡體   English   中英

Angular js將變量從父指令傳遞給子指令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM