angularJS の $broadcast に問題があります。私のコントローラーは、 $compile 関数を使用して、ページの読み込み時に DOM にディレクティブ要素を動的に追加しています。
$('#container').prepend($compile('<myDirective></myDirective>')($scope));
$scope.$broadcast('loadIt', stuffIneedLoaded);
私がやりたいことは、ディレクティブが作成されたときにディレクティブ スコープ関数を呼び出すことなので、$broadcast を使用しました。現在起こっていることは、ディレクティブのレンダリングが完了する前に $broadcast が呼び出されるため、ディレクティブの scope.$on がブロードキャストを聞くことはありません。
ディレクティブ リンク関数から:
link: function (scope, element, attrs) {
scope.$on('loadIt') = function (stuffToLoad) {
//stuff to load
}
}
ブロードキャストを使用する必要があるのは、コントローラーからディレクティブ データを送信する必要があるためです。
フィドルは機能しません。私が撮影しているものを伝えるのに役立つボイラープレートだけです。
何か案は?よろしくお願いします!