转换和访问父控制器

时间:2016-03-21 20:50:23

标签: angularjs angularjs-directive

我想要一个子指令,该指令由访问父指令控制器的父指令转换。但我得到错误“控制器'testParent',指令'testChild'所需,无法找到;”

app.directive('testParent', function(){
  return {
    restrict :'E',
    template: '<div>',
    transclude:true,
    controller: function(){
      this.log = function() {
        console.log('test');
      }
    },
    link : function(scope, element, attrs, unusedController, transcludeFn) {
      element.append(transcludeFn());
    }
  }
});

app.directive('testChild', function(){
  return {
    restrict : 'E',
    template: '<div>Child</div>',
    require:'^testParent',
    link : function(scope, element, attrs, controller){
      controller.log();
    }
  }
})

http://plnkr.co/edit/miqH0r80G8bI0B5bAOzA?p=info

1 个答案:

答案 0 :(得分:0)

您可以使用transcludeFn克隆的DOM

将其附加到DOM
transcludeFn(function(clone) {
    element.append(clone);
});

Demo PLunkr