我必须遗漏一些显而易见的东西,但我无法弄清楚它是否会让我发疯。我使用棱角分明,我有一个工厂' Auth'在“Auth”的返回{}中具有此功能(强调强制返回虚假):
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');
},
然后在控制器中我这样做:
$scope.isLoggedIn = function(){
console.log('chk:'+Auth.isAuthenticated);
return Auth.isAuthenticated;
};
console.log虽然显示:http://grab.by/GZSw
所以总是返回true。为什么我不能把它弄错?我认为这可能是非常基本的问题,但我不明白。
答案 0 :(得分:4)
您需要使用parens调用该函数。
$scope.isLoggedIn = function(){
console.log('chk:'+Auth.isAuthenticated());
return Auth.isAuthenticated();
};
答案 1 :(得分:3)
Auth.isAuthenticated
是对不调用函数的函数的引用
因此,它总是很简单,从不调用函数......它现在只是一个对象
如果你想要从函数内部返回值,你需要调用它
return Auth.isAuthenticated();
有人说,函数中有条件不返回任何内容,函数本身在
中永远不会返回true