我肯定遗漏了一些明显的东西,但我想不通,这让我发疯。我正在使用 angular 并且我有一个工厂“Auth”,它在“Auth”的返回 {} 中具有此功能(为了强调而强制返回 false):
isAuthenticated: function() {
var storedJwt = $window.sessionStorage.authToken;
console.log('stored JWT: '+storedJwt);
if(storedJwt){
var storedPayload = jwtHelper.decodeToken(storedJwt);
console.log('payload: '+JSON.stringify(storedPayload));
if(jwtHelper.isTokenExpired(storedJwt)){
console.log('is expired expired: '+jwtHelper.getTokenExpirationDate(storedJwt));
delete $window.sessionStorage.authToken;
} else {
console.log('is not expired expires: '+jwtHelper.getTokenExpirationDate(storedJwt));
}
}
return false;
//LocalService.get('authToken');
},
然后在 Controller 中我这样做:
$scope.isLoggedIn = function(){
console.log('chk:'+Auth.isAuthenticated);
return Auth.isAuthenticated;
};
虽然 console.log 显示:http://grab.by/GZSw
因此总是返回 true。为什么我不能让它是假的?我认为这可能是非常基本的 js 问题,但我不明白。
最佳答案
您需要使用括号调用该函数。
$scope.isLoggedIn = function(){
console.log('chk:'+Auth.isAuthenticated());
return Auth.isAuthenticated();
};
关于javascript - 为什么我的 js 函数返回的是自身而不是返回值? [ Angular ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30041911/