使用指令作为ng-if的值?

时间:2015-03-29 19:16:55

标签: javascript angularjs

在我的应用程序中,我需要能够轻松确定用户是否在我的HTML和所有模板中进行了身份验证。

我对如何做到这一点的第一个想法是创建一个“全局”控制器并将其应用于简单设置$ scope.isAuthenticated = $ auth.isAuthenticated。

然而,在做了一些阅读之后,我发现这不是一个好习惯。相反,我创建了一个指令,它只返回$ auth.isAuthenticated()。

angular.module('HordeWebClient')
  .directive('isAuthenticated', function($auth) {
    return $auth.isAuthenticated();
  });

然后在我的模板中,我想我可以使用....这不起作用,无论$ auth.isAuthenticated的状态如何都不会呈现元素。

Safari错误控制台没有显示任何问题,所以我坚持从哪里开始修复它。任何指针都将非常感激。

1 个答案:

答案 0 :(得分:0)

在我看来,你应该在主模块上使用.run。

angular.module('app').run(function(){
    if(!isAuthenticated){
        redirectToLoginView();
    }
});

更多:https://docs.angularjs.org/guide/module