Привет всем У меня есть некоторые проблемы с угловой фабрикой. Пытаясь вызвать функцию на моем контроллере с завода, эта функция вызывает другую функцию на той же фабрике с this
. но я всегда получаю консоль «ошибка неопределенными не является функцией»Угловой способ доступа к заводу на заводе с этим. и я получаю неопределенную функцию
angular.module('psJwtApp').factory('authToken', function ($window) {
var storage = $window.localStorage;
var cachedToken;
return {
setToken: function(token){
cachedToken = token;
storage.setItem('userToken', token);
},
getToken: function(){
if(!cachedToken)
{cachedToken = storage.getItem('userToken');}
return cachedToken;
},
isAuthenticated: function() {
return !!self.getToken();
}
};
});
Тогда я называю это в моем угловом контроллере:
angular.module('psJwtApp').controller('HeaderCtrl', function ($scope, authToken) {
$scope.isAuthenticated = authToken.isAuthenticated;
});
Любая помощь очень ценится. Я попытался позвонить getToken
как this
, так как self
, как authToken.getToken
. Ничего. если я утешу authToken.getToken
Я получаю undefined
. Любые идеи, что может быть?
где находится 'var self = this'? возможно, вы это забыли? – anvarik
Я думаю, что одна из проблем заключается в том, что вам не хватает '()' в конце вызова метода: $ scope.isAuthenticated = authToken.isAuthenticated(); '. –
@ ViníciusGobboA.deOliveira благодарит за предложение, когда я объявляю его authToken.isAuthenticated(); я все еще не определен, это не функция. – jsrosas