ui-router
的多个嵌套 View 功能非常好 - 您可以轻松地从应用程序的一个状态跳到另一个.
有时您可能想更改 URL,但有时又不想。我觉得 state 的概念应该与 routing 分开/可选。
Here's a plunker that shows what I mean.这是 ui-router
文档中的一个 plunker 的分支,有 2 个小的变化如下所示:
.state('route1', {
url: "/route", // <---- URL IS SHARED WITH ROUTE2
views: {
"viewA": {
template: "route1.viewA"
},
"viewB": {
template: "route1.viewB"
}
}
})
.state('route2', {
url: "/route", // <---- URL IS SHARED WITH ROUTE1
views: {
"viewA": {
template: "route2.viewA"
},
"viewB": {
template: "route2.viewB"
}
}
})
这似乎有效 - URL 保持不变。同样,这里完成了多少冗余工作?这是经过批准/测试的用法吗?
如果你能从状态中省略 url
就好了..
更新:您可以从状态中省略 url。 plunker
更新问题:这是经过批准/测试的用法吗?
最佳答案
您绝对可以拥有一个没有 URL 的状态。事实上,您的所有州都不需要 URL。这是设计的核心部分。话虽如此,我不会做你上面做的事情。
如果您希望两个州具有相同的 URL,请创建一个 abstract parent state ,为它分配一个 URL,并使它的两个状态成为它的子级(任何一个都没有 URL)。
关于javascript - Angular ui 路由器 : Can you change state without changing URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22791071/