共有サービスにデータを送信するコントローラー A と、そのデータを読み取るコントローラー B があります。問題は、コントローラー B がコントローラー A とは異なるページ (同じ Web サイト) にあることです。コントローラーAで、ボタン(サービスにデータを送信する)をクリックし、サービスからデータを読み取るコントローラーBがある別のページを開きます。しかし、何も起こらないので、私の質問は、異なるページのコントローラーがこの方法で通信できるかどうかです。
これが私がそれをやろうとした方法ですが、運がありません:
サービス:
publicApp.angularModule.service('controllerCommunicationService', function ($rootScope) {
var communicationService = {};
communicationService.data = null;
communicationService.setDataForBroadcast = function(data) {
this.data = data;
this.broadcastData();
};
communicationService.broadcastData = function() {
$rootScope.$broadcast('handleBroadcast');
};
return communicationService;
});
コントローラ A の関連部分:
publicApp.angularModule.controller('PublicRoutinesCtrl', function ($scope, $rootScope, routinesService, controllerCommunicationService, bootstrapCarouselService) {
$scope.goToNextScreen = function() {
var currentIndex = bootstrapCarouselService.getcurrentSlideIndex();
controllerCommunicationService.setDataForBroadcast($scope.items[currentIndex].Routine.RoutineId);
};
コントローラ B の関連部分:
$rootScope.$on('handleBroadcast', function () {
console.log("TEST");
$http.post("/EditWorkout/PostRoutineId", { routineId: controllerCommunicationService.data })
.success(function() {
console.log("success");
})
.error(function (responseData) {
console.log("Error !" + responseData);
});
});
そして、console.log("TEST");
解雇さえされません。