私は、リンク関数内でDomを操作するディレクティブを持っています。親ディレクティブがDom操作を終了した後にリンク関数を起動する必要があるという別の指示があります。たとえば、親リンク関数のスコープにプロパティを割り当てましたが、子ディレクティブでスコープにこれらのプロパティがありません(スコープが分離されていないため、リンク関数のスコープを変更して要素にアクセスできるようにする必要があります)ディレクティブリンク関数内のディレクティブ
0
A
答えて
1
ディレクティブの場合、link
(post-link
と同じ)機能の実行順序が逆になります。これは、次のシナリオでは、
<span l1-dir><span l2-dir></span></span>
子指示のリンク機能が最初に呼び出され、親指示リンクが呼び出されることを意味します。 pre-link
の関数があり、ディレクティブ定義の順番で呼び出されているので、私たちは幸いです。
最初の指令のpre-link
関数が呼び出され、次に2番目の指令のpre-link
関数が呼び出されます。
あなたがpre-link
機能(最初pre
とpost
に分割)で親ディレクティブからDOM操作ロジックを移動することができます。これは、子供のpost-link
一部であなたのDOM操作が親からの指示ことを保証
return {
restrict: 'A',
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) { //parent directive logic for DOM manipulation
},
post: //nothing
}
}
指令が完了します。
0
単にあなたの子供ディレクティブにNG-IFを追加し、このように、あなたの「親」ディレクティブで0で$タイムアウトの完了後にtrueに設定します、あなたがこの方法を
/*above should be placed all your parent directive link function code... the $timeout should be
executed after your parent directive code*/
$timeout(function(){
showChildDirective = "true";
}, 0);
親ディレクティブのすべてのタスクを実行します($タイムアウトはリンク関数の最後に置かれます)。次の$ダイジェストサイクルが完了するまで待つことができます。 DOMへのすべてのバインディングは〜になるlete。
関連する問題
- 1. ディレクティブリンク関数
- 2. ディレクティブリンク関数内の$ resource.get paramsをテストする
- 3. ディレクティブリンク関数内でAngularJSサービスが未定義
- 4. angularjsコントローラからのデータをバインドしないディレクティブリンク関数
- 5. ディレクティブリンク関数からコントローラスコープにアクセスできない
- 6. 親からのattrディレクティブ内の関数へのアクセス方法? (Angular2)
- 7. ディレクティブ内でスコープとタイムアウト関数のユニットテストケースを書く方法
- 8. AngularJSディレクティブ - 初期関数invoke
- 9. コールバック関数をvue.jsディレクティブ
- 10. ディレクティブ内にプライベート関数を作成する
- 11. AngularJSクリックがディレクティブ動的テンプレート関数内で機能しない
- 12. ブロック内の変数の理解(__blockディレクティブ)
- 13. ネストされたディレクティブのリンク関数からのコールコントローラ関数
- 14. AngularJsディレクティブの継承リンク関数
- 15. AngularJsディレクティブの関数を呼び出す
- 16. 子ディレクティブから関数を呼び出すと、親ディレクティブ
- 17. ng-if内にディレクティブが存在する場合、AngularJSディレクティブのコンパイル関数が実行されない
- 18. テンプレート内のVueディレクティブ
- 19. AngularJsディレクティブ内のデータバインド
- 20. VUEディレクティブで使用グローバル関数
- 21. Angularディレクティブのリンク関数内の値を参照する方法は?
- 22. ディレクティブのリンク関数からDOM階層内の要素を取得する[AngularJS]
- 23. 子ディレクティブのコントローラ(リンク関数ではない)の角度取得親ディレクティブのコントローラ
- 24. parentディレクティブからchildディレクティブのテンプレート関数への値の受け渡し
- 25. ディレクティブのテンプレート内のディレクティブのコントローラ変数にアクセスする方法は?
- 26. Angular 1ディレクティブがng-repeat内のディレクティブ内にレンダリングされない
- 27. ディレクティブ内のlink関数は境界線を描画しませんAngularJS
- 28. コントローラー関数内でディレクティブの関数を使用するにはどうすればよいですか?
- 29. 2つのレベルのディレクティブの引数を持つコールコール親関数
- 30. 関数内のjavascript関数
これは私のために働く。ありがとうございました。 –