我有兩個指令,其中之一廣播消息得到另外一個是這樣的:(demo)
angular.module('app', []);
angular.module('app').directive('foo',
function($rootScope) {
return {
restrict: 'EAC',
link: function($scope, element, attrs, controller) {
$rootScope.$on("onStart", function(e,d){
alert(d.message)
});
}
};
}
);
angular.module('app').directive('bar',
function($rootScope) {
return {
restrict: 'EAC',
link: function($scope, element, attrs, controller) {
$rootScope.$broadcast("onStart", {message: "start"});
}
};
}
);
這GIEVES消息。
但我需要我的指令模板網址,並設置它像這樣(demo)。
angular.module('app').directive('foo',
function($rootScope) {
return {
restrict: 'EAC',
templateUrl: "tpl.html",
link: function($scope, element, attrs, controller) {
$rootScope.$on("onStart", function(e,d){
alert(d.message)
});
}
};
}
);
但它現在不填充警報。
是有這個問題的任何解決方案? – barteloma
這對我來說似乎是錯誤的,但是你可以在'foo'指令的return語句之前放置'onStart'監聽器的註冊。它可以工作,但是非常黑客,而且它不能讓你訪問角度傳遞給'link'函數的所有參數。 – gerrit