Это мой контроллер, который передает запрос при каждом нажатии кнопки! но он не стреляет в какое-либо событие!
app.controller("education-blog", function ($scope, $http, $state, $ionicPopup, blogfav,URL, educationB, $cordovaSocialSharing, $localStorage, $rootScope) {
$scope.edu = educationB.getEdu($state.params.id);
$scope.class = $scope.edu.is_favorite;
$localStorage.blogscount = 0;
$scope.favbutton = function (id) {
if ($scope.class === true) {
$scope.class = false;
}
else {
$scope.class = true;
}
var data = {
id: id,
type: 'blogs'
};
$http.post(URL.url+'/favorites', data).success(function (response) {
console.log(response.is_favorite);
if (response.is_favorite == true) {
$localStorage.blogscount++;
}
if (response.is_favorite == false) {
$localStorage.blogscount--;
}
}).error(function () {
$ionicPopup.alert({
title: 'Something went wrong !',
template: ' Sorry for the Inconvenience !'
});
});
$rootScope.$broadcast('update', 9);
}
});
это мой второй контроллер, который содержит $ scope.on()//
app.controller('blogfav', function (blogfav, $scope) {
$scope.blogfavourites = blogfav;
$scope.$on('update', function (event, arg) {
$scope.receiver = 'got your ' + arg;
console.log($scope.receiver);
});
что я хочу, когда я нажимаю на свой favbutton, он должен запускать событие, которое должно быть уловлено моим вторым контроллером
Эти два являются отдельными контроллерами
Я могу только представить себе, что два контроллера не имеют $rootScope
.
Возможно, они принадлежат к разным модулям/приложениям и не являются "видимыми" друг для друга.
$ rootScope. $ broadcast vs. $ scope. $ emit - хорошее объяснение того, как широковещательная и испускающая работа в angularjs.