角$ state.reload不起作用

问题描述 投票:0回答:2

我已经设置了退出用户的状态。我将其设置为:

.config(['$stateProvider', function ($stateProvider) {

    // Now set up the states
    $stateProvider.state('login', {
        url: '/account/login',
        templateUrl: 'app/account/login/login.tpl.html',
        controller: 'LoginController',
        controllerAs: 'controller'
    }).state('logout', {
        url: '/account/logout',
        resolve: {
            logout: ['$state', 'AccountService', function ($state, account) {
                console.log('start logging out');
                account.logout();
                console.log('logging out');
                console.log($state);
                $state.go('login');
                console.log('logged out');
            }]
        }
    });
}])

当我导航到logout状态时,所有console.logs均被命中,但$ state不变。我已经尝试了几件事:

$state.go('login', {}, { reload: true });

$state.go($state.current, {}, { reload: true });

$state.reload();

但是无论我尝试哪一种,我都无法使$ state更改为正确的状态。

有人知道为什么吗?

更新

所以我将状态更改为此:

}).state('logout', {
    url: "/account/logout",
    templateUrl: '/app/account/logout.tpl.html', // If we don't have a template then the state will not change in our resolve
    resolve: {
        logout: ['$state', 'AccountService', function ($state, account) {
            account.logout();
            console.log('logging out');
            $state.go('login');
        }]
    }
});

并且它仍然不会进入登录屏幕。控制台正在记录注销位,如果刷新页面,则实际上已经注销,因此代码可以正常工作。它不会不会重定向...

angularjs angular-ui-router
2个回答
0
投票
logout状态中没有模板,因此它

IS更改状态,但是没有视觉变化,因此它始终显示相同的视图。如果要110%确保状态正在更改,请验证url是否正在更改。


0
投票
controller: function ($scope) { $scope.$on('refresh-event', refresh); function refresh() { //Refresh Logic } refresh(); }
© www.soinside.com 2019 - 2024. All rights reserved.