AngularJs:ng-如果反应太迟了

org*_*tot 8 javascript angularjs angular-ui-router

我在我的主html文件中使用ui.router并包含我的导航:

<header ng-if-start="logedin()"></header>
<navigation ng-if-end="logedin()"></navigation>
Run Code Online (Sandbox Code Playgroud)

logedin()布尔将通过设置angular.module().run()在这个函数:

$rootScope.$on('$stateChangeStart', function(e, to)
Run Code Online (Sandbox Code Playgroud)

如果我在其中一个导航中单击"注销",导航控制器将触发此功能:

$scope.logout = function() {
    store.remove('jwt');
    $state.go('login');
}
Run Code Online (Sandbox Code Playgroud)

问题是$state.go导航未隐藏后,但刷新页面后.

我是否必须重新渲染主索引模板/视图(以及如何)?或者我怎么能解决这个问题?

org*_*tot 4

所以我自己解决了。很抱歉没有提供logedin()方法。

问题是:

$scope.logedin = function() {
return $rootScope.logedin
}
Run Code Online (Sandbox Code Playgroud)

$rootScope.logedinangular.module().run()- 函数中设置。

为了解决这个问题,我必须创建一个简单的 getter/setter 服务。

angular.module('sample')
    .service('sharedLogedIn', function () {
        var property = true;

        return {
            getProperty: function () {
                return property;
            },
            setProperty: function(value) {
                property = value;
            }
        };
    });
Run Code Online (Sandbox Code Playgroud)