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