2016-03-21 12 views
1

親ディレクティブのコントローラーにアクセスする親ディレクティブによって継承された子ディレクティブが必要です。しかし、私は、エラー "コントローラ '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

答えて

0

あなたはtranscludeFnを使用してDOMに追加し可能性がDOM

transcludeFn(function(clone) { 
    element.append(clone); 
}); 

Demo PLunkrクローン

+0

ありがとう!どのように動作するか教えていただけますか? – raichu

関連する問題