Ui路由器浏览器刷新

时间:2018-05-07 06:02:15

标签: html angularjs web-applications angular-ui-router

我有一个Angular 1.x项目,其配置如下:

Html root

<base href="/admin/" />
<div ui-view="mainView">

州提供商配置

config(['$stateProvider', function ($stateProvider) {
   $stateProvider
        .state('cats_state', {
            url: 'cats',
            views: {
                'mainView': {
                    templateUrl: '/app/components/cats/cats.html'
                }
            }
        })
        .state('dogs_state', {
            url: 'dogs',
            views: {
                'mainView': {
                    templateUrl: '/app/components/dogs/dogs.html'
                }
            }
        })

}])

cats_statedogs_state状态与相对于/admin/路径的网址相关联,并且他们在同一区域加载特定的html模板。当我点击其中任何一个时,浏览器网址就会更改为/admin/cats和/或/admin/dogs。唯一的问题是:当我手动重新加载/admin/cats网址时如何重新加载相同的状态/模板?我想只在可能的情况下使用角度ui-router来实现这一点。

1 个答案:

答案 0 :(得分:0)

当人们正在查看这个问题(但没有回答)时,我找到了解决方案:那就是定义

<base href="/" />

以及各种州的网址:

config(['$stateProvider', function ($stateProvider) {
   $stateProvider
        .state('cats_state', {
            url: '/admin/cats',
            views: {
                'mainView': {
                    templateUrl: '/app/components/cats/cats.html'
                }
            }
        })
        .state('dogs_state', {
            url: '/admin/dogs',
            views: {
                'mainView': {
                    templateUrl: '/app/components/dogs/dogs.html'
                }
            }
        })

}])

我不太明白为什么会发生这种情况,但它的确如此。此外,我注意到/ path首先被重新加载(因此所有依赖项),之后,ui-router以某种方式解析当前url,可能基于状态配置为浏览器地址中的状态。