首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度ui路由器:你能改变状态而不改变URL吗?

问角度ui路由器:你能改变状态而不改变URL吗?
EN

Stack Overflow用户
提问于 2014-04-01 16:03:35
回答 2查看 25.4K关注 0票数 29

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

有时您可能希望更改URL,但有时不希望更改URL。我觉得状态的概念应该与路由是分开的/可选的。

这是一个显示我的意思的柱塞。 --这是ui-router文档中一个柱塞的分叉,下面有两个小的更改:

代码语言:javascript
复制
.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。柱塞

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-01 16:42:46

您绝对可以拥有一个没有URL的状态。事实上,你们的州都不需要URL。这是设计的核心部分。话虽如此,我还是不会做你上面所做的事。

如果您希望两个状态具有相同的URL,那么创建一个抽象父状态,为它分配一个URL,并使它的两个状态子(其中一个没有URL )。

票数 41
EN

Stack Overflow用户

发布于 2016-08-10 20:49:12

若要添加到另一个答案,多个命名视图不使用URL。

从医生那里:

如果定义了视图对象,则会忽略状态的templateUrl、模板和templateProvider。因此,在需要这些视图的父布局的情况下,可以定义包含模板的抽象状态,以及包含“视图”对象的布局状态下的子状态。

使用命名视图的原因是,每个模板可以有多个ui视图,或者换句话说,在单个状态中有多个视图。这样,您可以使用您的路由更改站点的各个部分,即使URL没有改变,您也可以在不同的模板中重用数据,因为它是一个具有自己的控制器和视图的组件。

有关示例的深入说明,请参见使用用户界面路由器的角度路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22791071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档