如何在指令中继承一些属性

时间:2014-05-21 14:34:20

标签: angularjs

我正在创建几个指令(exorcises,填补空白,翻译)。

<exercises mode='register' data="rows">
  <fill-in-the-gaps></fill-in-the-gaps>
  <translations></translations>
</exercises>

我需要知道如何在指令child(填补空白,翻译)中继承一些属性(模式,数据)?

1 个答案:

答案 0 :(得分:0)

您最好的选择可能是在exercises指令中使用控制器并在那里挂起这些属性,然后通过require引入控制器:

  app.module('foo').directive('exercises', function(){
    return {
      restrict: 'E',
      controller: function($scope, $attrs) {
        self = this
        $attrs.$observe('mode', function(value){ // use $scope.$watch here if you 
                                                 // want actual scope values
          self.mode = value
        })
      }
    }
  })

  app.module('foo').directive('fillInTheGaps', function(){
    return {
      restrict: 'E',
      require: '^excercises', // require a parent directive
      link: function($scope, $element, $attrs, excercisesCtrl) {
        console.log(excercisesCtrl.mode)  
      }
    }
  })