2016-10-17 1 views
1

Der Zustandsregler hat die folgende Variable:AngularJS - Zugang Grand Eltern Variable

vm.stateControllerVariable = 1; 

Der Staat Vorlage hat die folgende Anweisung:

<div directive-aleluia></div> 

Die richtlinien aleluia Vorlage:

<div directive-arebaba></div> 

Die Richtlinie-arebaba Vorlage:

<span>{{ vm.stateControllerVariable }}</span> 
<!-- How can I show the grand parent controller variable here? --> 

Antwort

0

Um Daten vom übergeordneten Bereich zu übernehmen, darf die Direktive keinen isolierten Bereich haben, der Wert der 2 Direktiven muss wahr oder falsch sein.

Wenn Sie einen isolierten Umfang von Ihrer Richtlinie benötigen, sollten Sie

vm.stateControllerVariable

als Parameter in der isolierten Umfang passieren.

Siehe explaination about directive

0

Etwas wie folgt aus:

einfach passieren die Großeltern (Controller) Variable in den isolierten Rahmen in der Kinder- und Enkelkind Richtlinien

var app = angular.module('plunker', []); 

    app.controller('MainCtrl', function($scope) { 
     $scope.stateControllerVariable = 'Hello State'; 
    }); 

    app.directive('directiveAleluia', function(){ 
     return { 
     scope: { 
      someVar: '=' 
     }, 
     template: '<div directive-arebaba some-var="someVar"></div>' 
     }; 
    }); 

    app.directive('directiveArebaba', function(){ 
     return { 
     scope: { 
      someVar: '=' 
     }, 
     template: '<span>{{ someVar }}</span>' 
     }; 
    }); 

HTML

<div directive-aleluia some-var="stateControllerVariable"></div> 

Arbeits plunkr: http://plnkr.co/edit/HZwD3sQZ5kJUAoFRujbW?p=preview

Verwandte Themen