更新
我的假设是wrong。我期望url用通常产生最终路径的方式表示路径的组件以及相应的组合。但网址只是连接在一起,仅此而已。
我有以下状态:
.state('banksList',
{
url: '/',
...
})
.state('banksList.bank',
{
url: '/bank/{bankId}',
...
})
.state('banksList.bank.branch',
{
url: '/branch/{branchId}',
...
})
转换为banksList.bank
浏览器显示http://bla-bla//bank/1
后,基本标记指向http://bla-bla/
。
看起来网址只是连接在一起。我需要启用某种模式还是什么?
答案 0 :(得分:1)
为了保持您的期望,您可以使用神奇的标志 ^
。这实际上是对UI-Router说:"重启url定义,不要使用父部分"
.state('banksList',
{
url: '/',
...
})
.state('banksList.bank',
{
url: '^/bank/{bankId}',
...
})
.state('banksList.bank.branch',
{
url: '/branch/{branchId}',
...
})
请参阅:
如果您想要绝对网址匹配,则需要在网址字符串前加上一个特殊符号' ^'。 ...
因此,正如示例plunker所示,这些链接将按预期工作
<a href="#/">
<a href="#/bank/B1">
<a href="#/bank/B2">
<a href="#/bank/B1/branch/A1">
<a href="#/bank/B2/branch/A22">
<a ui-sref="banksList">
<a ui-sref="banksList.bank({bankId: 'X1'})">
<a ui-sref="banksList.bank({bankId: 'X2'})">
<a ui-sref="banksList.bank.branch({bankId: 'X1', branchId: 'Y1'})">
<a ui-sref="banksList.bank.branch({bankId: 'X2', branchId: 'Y22'})">
中查看
答案 1 :(得分:0)
url
州的空字符串banksList
有效:
.state('banksList', {
url: '',
...
})
.state('banksList.bank', {
url: '/bank/{bankId}',
...
})
.state('banksList.bank.branch', {
url: '/branch/{branchId}',
...
})