特定の機能コンテンツを表示するには、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
関数は正しい結果 (true または false) を提供するようになりましたが、ブラウザーでこれを実行すると、何千もの Infinite $digest Loop エラーが生成されます。私は明らかにこれを間違った方法で行っています。ソリューションを最適に実装してエラーの発生を止める方法についてのアイデアはありますか? HTML ビューは、ユーザーが myapp.com/#/youraccount などの特定の URL にアクセスしたときに読み込まれますがng-show="authService.isSuperUser()"
、アプリでは読み込まれません。