Angular 1.x在页面重新加载后设置初始状态

时间:2018-02-02 00:37:24

标签: angularjs

我正在使用angular 1为我的应用+ ui router。如果页面重新加载,我希望应用程序返回初始状态。目前,即使在浏览器刷新之后,该应用仍保持在之前的同一页面上。如何在页面重新加载后让应用程序返回login状态?这是我的app.js config数据:

app.config(function($stateProvider, $urlRouterProvider) {
    var loginState = {
        name: 'login',
        url: '/login',
        templateUrl: 'templates/login/login.html',
        controller: "loginController"
    }

    var homePageState = {
        name: 'homePage',
        url: '/homePage',
        templateUrl: 'templates/chatRoom/homePage.html',
        controller: "homePageController"
    }

    $stateProvider.state(loginState);
    $stateProvider.state(homePageState);
    $urlRouterProvider.otherwise('login');
}).run([
    "$state",
    function($state) {
        $state.go('login');
    }
]);

2 个答案:

答案 0 :(得分:0)

app.config(function($stateProvider, $urlRouterProvider) {
    //...
}).run([
    "$state",
    "$rootScope",
    function($state, $rootScope) {

        $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
            if (toState.name == fromState.name) {
                $state.go('login');
            }
        });
    }
]);

刷新时,路由器的名称相同。希望这可以帮助你。

答案 1 :(得分:0)

您可以使用简单的javascript事件。

.tex

只需将此脚本标记添加到索引html文件中即可完成。