ng-include を使用して階層ツリーを再帰的にレンダリングしようとしています。ここにフィドルがあります
問題は、レンダリングが完了する前にリンク関数が呼び出され、空のリストでメニュー プラグインを初期化しようとすることです。
link: function (scope, element, attrs) {
var $menus = element.find("ul");
//Prints empty element
console.log($menus.html());
//No real $menus to initialize
//$menus.menuAim({ });
}
私はonload
ng-include があることを知っていますが、階層構造のためにカウントの計算が難しくなるため、各オンロードでカウンターをインクリメントし、要素のカウントと比較するような醜いハックに頼りたくありません。
ng-include が完全な再帰レンダリングを終了し、すべての要素がページ上にあることを知るためのよりクリーンな方法は何ですか?
リンクの代わりに postLink を使用しようとしましたが、ディレクティブはまだ空を出力します<ul>
:
link: {
pre: angular.noop,
post: function(scope, element, attrs){
//no difference
}
}