一尘不染

Angular ui-router:是否可以更改状态而不更改URL?

angularjs

多重嵌套视图 功能ui-router非常好-您可以轻松地从应用程序的一种 状态 跳到另一种 状态

有时您可能想更改URL,但有时不需要。我觉得 状态 的概念应该与 route 分开/可选。

这是一个说明我意思的朋克。 这是ui- router文档中的一个小工具的分支,下面有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。矮人

更新问题:这是经过批准/测试的用法吗?


阅读 257

收藏
2020-07-04

共1个答案

一尘不染

您绝对可以没有URL的状态。实际上,您的任何州都不需要URL。这是设计的核心部分。话虽如此,我不会做你上面做的。

如果要使两个状态具有相同的URL,请创建一个抽象的父状态,为其分配一个URL,并将其作为两个状态的子项(两个都不具有URL)。

2020-07-04