2017-09-28 11 views
0

以下は私のアプリケーションフローです。私は2番目のディレクティブ呼び出し元の親関数からネストされたディレクティブのanglejsから親関数を呼び出す必要があります

<div ng-controller="FirstController"> 
    <second-directive></second-directive> 
</div> 

をロードする別のディレクティブは

ParentFunction()

<div ng-controller="SecondController"> 
    <a ng-click="ParentFunction(2342)"></a> 
</div> 
まず指令に子ディレクティブから

<div ng-controller="ParentController"> 
    <first-directive></fist-directive> 
</div> 

を親コントローラ機能にアクセスしたいで利用可能ですParent Controller。私は2番目のディレクティブから関数を呼びたいと思っていました。

ParentController - > FirstDirective - > SecondDirective

私のシナリオにSecondDirectiveからparent functionを呼び出す方法?

答えて

0

親スコープを継承する最初のディレクティブと2番目のディレクティブを作成します(スコーププロパティを定義しないでください)。スコープが分離されている場合、親スコープにアクセスすることはできません。第二のディレクティブで次に

これを行う -

<div ng-controller="SecondController"> 
    <a ng-click="$parent.$parent.ParentFunction(2342)"></a> 
</div> 

EDIT: OPは、ここでコメントしたようにディレクティブはスコープを単離した場合、あなたはディレクティブに関数を渡すために持っているので、あなたのコードは次のようになり、あなたはこの

最初の指令のような範囲にいくつかの値を持っている必要がディレクティブで

<div ng-controller="ParentController"> 
    <first-directive function-to-call="parentFunction()"></fist-directive> 
</div> 
<div ng-controller="FirstController"> 
    <second-directive function-to-call="functionToCall()"></fist-directive> 
</div> 
<div ng-controller="SecondController"> 
    <a ng-click="functionToCall(2342)"></a> 
</div> 

そして

scope: { 
    functionToCall: '&' 
} 

第二指令

scope: { 
    functionToCall: '&' 
} 
+0

マドゥ、それは隔離されているスコープ、私は2番目のディレクティブでpartialviewを表示しています、あなたは私が更新した親関数 –

+0

を呼び出すための最良の方法は何か教えてもらえますあなたの要件に答える – madhur

関連する問題