AngularJS $ watchCollection не вызывается - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь использовать $scope.$watchCollection с контроллера для мониторинга службы, которая у меня есть. Когда мой контроллер первоначально вызывается, часы вызывают, но каждый раз после этого нет.

Мой контроллер:

.controller('LoginModalCtrl', ['$scope', '$modalInstance', '$http', 'loginService', function($scope, $modalInstance, $http, loginService) {

    $scope.$watchCollection('loginService.service', function(newVal, oldVal) {
        console.log("New Data", newVal);
        $scope.service = newVal;
    });

    $scope.closeDialog = $modalInstance.close;
}])

Мой сервис:

.service('loginService', ['$http', '$filter', function($http, $filter) {
    var service = {
        showGDPR: false,
        showGDPRModal: false,
        invalidCredentials: false
    };
    return ({
        returnVariables: function(){
            return service;
        },
        login: function login(isValid, username, password) { //Called on toggle
        //This function changes the values inside service
        }
    });
 }]);

1 Ответ

0 голосов
/ 06 июля 2018

Вы используете $watchCollection над объектом, используйте только $ watch

$scope.$watch('loginService.service', function(newVal, oldVal) {
        console.log("New Data", newVal);
        $scope.service = newVal;
});
...