我见过类似的问题,但希望有人可以给我一些帮助。
我正在尝试验证用户是否已登录并修改html以进行登录或注销按钮。
this.getUser = function(){
return $http.get('/api/user');
};
服务
vm.user = function() {
dataService.getUser().then(function(res){
if(res.data.userId.length){
return true;
}else{
return false;
}
});
}
控制器
<li class="nav-item" ng-hide='vm.user()'>
<a class="nav-link" href="/api/signin">Sign in</a>
</li>
我尝试了不同的变化无济于事。我要么返回一个promise对象,要么不能在promise之外使用变量。感谢
答案 0 :(得分:1)
只需使用变量而不是在ng-hide指令中观察整个函数。请找到代码段。
控制器文件:
vm.flags = {};
vm.user = function() {
dataService.getUser().then(function(res){
if(res.data.userId.length){
vm.flags.isUserLoggedIn = true;
}else{
vm.flags.isUserLoggedIn = false;
}
});
}
Html文件
<li class="nav-item" ng-hide='vm.flags.isUserLoggedIn'>
<a class="nav-link" href="/api/signin">Sign in</a>
</li>