根据某些条件直接重定向到页面

时间:2017-09-06 01:54:33

标签: javascript angularjs angular-ui-router

我已经有一个home页面,现在我想添加一个由homePlus变量localStorage控制的alreadyShown页面。设置是首次显示homePlus后,我们将alreadyShown设置为true,因此homePlus的所有后续加载将直接重定向到home {1}}页面。我有以下代码:

.state('homePlus', {
    url: '/homePlus',
    templateUrl: '/htmls/homePlus.html',
    controller: 'homePlusCtrl',
    resolve: {
        checkAlready: ['$window', function ($window) {
            if ($window.localStorage['alreadyShown'] === "true") {
                $window.location.href = "https://localhost:3000/home"
            }
        }]
    }
})

以上代码会检查alreadyShown。但是,即使alreadyShowntrue,在重定向到homePlus之前,它仍显示0.5-1秒的home页面。理想情况下,在这种情况下,我根本不想看到homePlus页面。

有谁知道如何实现这个目标?

1 个答案:

答案 0 :(得分:0)

ui-router事件$stateChangeStart应该有用 angular.module.run

 app.run(['$rootScope' function ($rootScope) {       
        $rootScope.$on('$stateChangeStart', function (event, to, toParams, from, fromParams) {
             ...do something 
        });
    }]);