0
廣播消息,我需要從角JS另一個控制器調用一個函數。 Stack Overflow上的另一個問題是建議使用,而不是一種服務: https://stackoverflow.com/a/11847277/1910735使用服務於AngularJS
的jsfiddle:http://jsfiddle.net/0z7ux66c/
所以我創建了一個服務,並且兩個控制器:
var app = angular.module("myApp", []);
app.factory('trackingService', function ($rootScope) {
var trackingInstance = {};
trackingInstance.assetInformationModel = null;
trackingInstance.RefreshDashboard = function() {
$rootScope.$broadcast('Refresh');
};
return trackingInstance;
});
app.controller('assetInformationController', function ($scope, trackingService) {
$scope.UpdateDashboard = function() {
console.log('UpdateDashboard()')
trackingService.RefreshDashboard();
};
$scope.$on('Refresh', function() {
// THIS gets called
console.log('Refresh');
});
});
app.controller('liveTrackingController', function ($scope, trackingService){
$scope.$on('Refresh', function() {
// THIS doesn't
console.log('Refresh in liveTrackingController');
});
});
從代碼,它應該顯示下面三行在控制檯:
UpdateDashboard()
Refresh
Refresh in liveTrackingController
但它不調用從liveTrackingController
10事件 - 它只是顯示:
UpdateDashboard()
Refresh