0
我在angularJS中的$ broadcast有問題。我的控制器使用$ compile函數在頁面加載時動態地向DOM添加指令元素。
$('#container').prepend($compile('<myDirective></myDirective>')($scope));
$scope.$broadcast('loadIt', stuffIneedLoaded);
我想要做的是在指令被創建時調用指令作用域函數,所以我使用$ broadcast。現在發生的事情是,在指令完成渲染之前調用$ broadcast,因此指令中的作用域$ on不會聽到廣播。
從向鏈路功能:
link: function (scope, element, attrs) {
scope.$on('loadIt') = function (stuffToLoad) {
//stuff to load
}
}
我需要使用廣播的原因是因爲我需要從控制器發送指令數據。
小提琴不起作用,只是樣板,以幫助傳達什麼,我拍攝的:
任何想法?謝謝大家!
小提琴的作品.... http://jsfiddle.net/5ReCu/1/不知道你爲什麼不使用數據服務,但修改你的問題。沒人能猜到。似乎非正統不通過屬性傳遞數據給控制器,或者服務雖然 – charlietfl
剛剛看到了jsfiddle和-imho-你的設計完全違背了所謂的「角度禪」。在控制器中寫入jquery.prepend和$ compile ......這裏有另一種方法。你究竟想要做什麼? –