使用ui路由器在AngularJS中的浏览器后退/前进按钮上重新加载页面

时间:2015-04-14 20:14:53

标签: javascript angularjs angular-ui-router html5-history

我在angularjs应用程序中为ui路由器状态配置了以下配置。

    $locationProvider.html5Mode(true);
    $stateProvider
        .state('index', {
            url: '/index?zoom&center',
            views: {
                'map': {
                    controller: 'MapCtrl',
                    templateUrl: 'map.html'
                }
            },
            reloadOnSearch:false
    });

但是,浏览器中的后退按钮会转到不同的URL,但是我需要使用url作为stateParams重新加载页面。

例如: User1转到第http://www.example.com/index?zoom=2&center=1,2页。 然后他在页面中进行操作,网址变为http://www.example.com/index?zoom=12&center=3,4

然后他按下后退按钮,url更改为上一个,但我需要重新加载我的页面让控制器读取查询参数以做正确的事情...

任何方式让它与浏览器后退/前进一起使用?

1 个答案:

答案 0 :(得分:1)

您是否尝试将reloadOnSearch设置为true?如果这不能满足您的需求,请查看以下问题:Force AngularJS to reload a route although option reloadOnSearch is set to false

更简单的替代方法可能是在必要时使用window.location = newUrl强制重新加载。