Angular rootscope.brodcast не является событием стрельбы

0

Это мой контроллер, который передает запрос при каждом нажатии кнопки! но он не стреляет в какое-либо событие!

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, он должен запускать событие, которое должно быть уловлено моим вторым контроллером

Эти два являются отдельными контроллерами

  • 0
    ты пробовал с $ emit?
  • 0
    Ничего не произошло !
Показать ещё 3 комментария
Теги:

1 ответ

0

Я могу только представить себе, что два контроллера не имеют $rootScope.

Возможно, они принадлежат к разным модулям/приложениям и не являются "видимыми" друг для друга.

$ rootScope. $ broadcast vs. $ scope. $ emit - хорошее объяснение того, как широковещательная и испускающая работа в angularjs.

  • 0
    На самом деле, у меня проблема в том, что когда мой контроллер, который нужно перехватить, не открывается ни разу (значит, он не зарегистрирован хотя бы один раз!), Он не перехватывает событие, иначе он перехватывает события! что я должен делать ? если мой контроллер не зарегистрирован? и я все еще могу сделать это поймать запрос?
  • 0
    Этот ответ хорош, я просто хочу добавить, что 2 контроллера могут быть определены в одном и том же модуле, но первый транслирует на $ rootScope, а второй прослушивает его личную область $. Кажется очень маловероятным, что эти 2 одинаковы.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню