Я пытаюсь вызвать метод isAuthenticated в моем контроллере, но он говорит мне, что это не функция. Ниже фрагмента кода.
контроллер
(function() {
'use strict';
angular
.module('app')
.controller('NavController', NavController);
NavController.$inject = ['USER_ROLES','AUTH_EVENTS','authService','$http'];
/* @ngInject */
function NavController(authService) {
var vm = this;
vm.name = '';
activate();
////////////////
function activate() {
authService.isAuthenticated().then(function(response){
vm.isLoggedin=response;
});
}
}})();
и в app.js (основной модуль) он включает все зависимости
angular
.module('app', ['admin','app.router','app.auth','app.constants','user'])
authService находится в app.auth.js
(function() {
'use strict';
angular
.module('app.auth',['LocalStorageModule','app.constants'])
.factory('authService', authService);
authService.$inject = ['$http','localStorageService','USER_ROLES'];
/* @ngInject */
function authService($http,localStorageService,USER_ROLES) {
var service = {
isAuthenticated: isAuthenticated
};
return service;
////////////////
function isAuthenticated(){
return $http({
method: 'GET',
url: '/api/v1/isAuthenticated',
headers: {
'Authorization': 'Bearer '+localStorageService.get('token')
}
}).then(function successCallback(response) {
return true;
}, function errorCallback(response) {
return false;
});
}
}})();
кто-нибудь знает, что я сделал неправильно здесь? нужна помощь
Похоже, что вы вводите несколько вещей и объявляете только один. Он должен выглядеть так:
NavController.$inject = ['USER_ROLES','AUTH_EVENTS','authService','$http'];
/* @ngInject */
function NavController(USER_ROLES,AUTH_EVENTS,authService,$http) {