2016-05-29 1 views
1

内からtranscludeディレクティブ関数を呼び出すことは一例です:
http://jsfiddle.net/vp2dnj65/1/:私はここに、トランスクルード部分を持っていますコンポーネントを作成したいトランスクルードコンポーネント

何も起こりません行うボタンをクリックしたときにあなたが見ることができるように。
トランスコードされた部分内に配置されたコンポーネントからトランスコードされたコントローラ機能を実行する方法はありますか?ここ

はHTMLである:

<panel> // trans is the name of the controller of panel 
    <button ng-click="trans.do()">do</button> //transcluded part 
</panel> 

答えて

0

あなたが手動で要素をtranscludeし、それにスコープ機能を付ける場合ことを達成することができます

compile: function(tElement, tAttrs) { 
    var parentElement = tElement.parent(); 
    return function(scope, element, attrs, ctrl, transclude) { 
    transclude(scope.$new(), function(clone) { 
     clone.bind('click', function() { 
     scope.trans.do(); 
     }) 
     parentElement.append(clone); 
    }); 
    }; 
} 

このtutorialに示すように。 もご覧くださいfiddle

0

内部コンポーネントが上位親に接続されているtranscludeを使用して(すなわちtranscludingの親ではありません)。あなたのケースでは、transコントローラによって登録され、継承されたコンポーネントによって起動されるイベント($rootScopeまたはサービスのいずれか)を使用することをお勧めします。

+0

私はイベントを使いたいとは思っていません。私の意見では、サービスは非常に洗練された解決策です。 – vlio20

関連する問題