2016-02-24 3 views
-2

Я хочу вызвать функцию setValue при запуске события emit и прослушивателя $on. Я получаю следующее сообщение об ошибке: ReferenceError: setValue is not defined Почему это происходит?ReferenceError: функция не определена error

angular.module('clientApp') 
.service('ManagerService', 
['$rootScope', function($rootScope) { 

    var someValue = false; 

    this.setValue = function(value) { 
    someValue = value; 
    } 

    $rootScope.$on('event', function(event, data) { 
    setValue(true); 
    }); 

}]); 
+1

«Как я могу это исправить?» Определите переменную setValue или объявите функцию с этим именем. –

ответ

1

Определить setValue переменную или объявить функцию с этим именем.

angular.module('clientApp') 
.service('ManagerService', 
['$rootScope', function($rootScope) { 

    var someValue = false; 

    this.setValue = setValue; 

    function setValue(value) { 
    someValue = value; 
    } 

    $rootScope.$on('event', function(event, data) { 
    setValue(true); 
    }); 

}]); 
1

магазин этот объект в переменной, а затем использовать его

angular.module('clientApp') 
.service('ManagerService', 
['$rootScope', function($rootScope) { 
var vm = this; 
    var someValue = false; 

    vm.setValue = function(value) { 
    someValue = value; 
    } 

    $rootScope.$on('event', function(event, data) { 
    vm.setValue(true); 
    }); 

}]);