我需要在我的 AngularJS 应用程序中检查用户的状态以显示特定的功能内容。在我看来,我有以下 HTML:
<span ng-show="authService.isSuperUser()">You are a Super User</span>
要确定用户是否具有“超级用户”状态并显示跨度,我的服务中有以下 JavaScript 代码
this.isSuperUser = function () {
if (loggedInUser !== null) { // loggedInUser is true in most cases
return getSuperUser();
} else {
return false;
}
};
var getSuperUser = function(){
return $http({method: 'GET', url: '/url/to/rest/service/for/superuser' }).then(function (response) {
return response; // this is either true or false and is working
}, function () {
console.log('Yikes! An Error!');
return false;
});
};
现在该getSuperUser
函数提供了正确的结果(真或假),但是当我在浏览器中运行它时,我会生成数千个无限 $digest 循环错误。我显然是以错误的方式解决这个问题,关于如何最好地实施我的解决方案并停止产生错误的任何想法?当用户访问特定 URL(如 myapp.com/#/youraccount)并且ng-show="authService.isSuperUser()"
之前未在应用程序中加载时,将加载 HTML 视图。