AngularJS - 访问祖父变量

时间:2016-10-17 22:08:29

标签: angularjs scope directive

状态控制器具有以下变量:

vm.stateControllerVariable = 1;

州模板具有以下指令:

<div directive-aleluia></div>

指令-laluia模板:

<div directive-arebaba></div>

指令 - arebaba模板:

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

2 个答案:

答案 0 :(得分:0)

要从父作用域继承数据,该指令不能具有孤立的作用域,2指令的值必须为true或false。

如果您需要指令中的隔离范围,则应传递

  

vm.stateControllerVariable

作为孤立范围内的参数。

请参阅explaination about directive

答案 1 :(得分:0)

这样的事情:

将祖父母(控制器)变量传递到子和孙指令

中的隔离范围
    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>
  

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