当前位置: 首页 > 面试题库 >

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

时宾实
2023-03-14
问题内容

多重嵌套视图 功能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。矮人

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


问题答案:

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

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



 类似资料:
  • 问题内容: 有人知道如何在不更改url的情况下更改ui路由器状态吗?如下代码所示;在某些情况下,需要将用户重定向到403或401状态。我希望能够执行此重定向而无需更改url。 问候,klmdb 问题答案: 将选项传递给$ state.go 实际使用它:http : //plnkr.co/edit/w2aolrt9wdW3EFcEB3Lw?p=preview

  • 问题内容: 我有一个带有按钮的应用程序,用于打开和关闭BT。我那里有以下代码; 我正在调用按钮Flip(翻转BT状态),然后调用ButtonText,后者应该更新UI。但是,我遇到的问题是,打开BT需要花费几秒钟的时间- 在这几秒钟中,BT状态未启用,即使我的按钮在2秒钟内打开,我的按钮也会关闭蓝牙。 我在BluetoothAdapter android文档中找到了该常量,但是…我只是不知道如何使

  • 在react组件中,通常不应在其中变异道具。此外,家长只能更改道具,不能直接更改状态。基于这两个事实,假设在任何componentDidUpdate调用中,例如。, 只读 这道具可能与prevProps不同,或者与此不同。状态可能与状态不同,但这两种情况不能同时发生?

  • 在这种情况下,我更改选择元素并调用数据更新方法。该方法从状态获取值。但是当数据更新时,状态还没有改变。当您再次调用数据更新时,状态已经更新了如何正确进行更新? 反应成分

  • 问题内容: 是否可以“监视”指令上的ui更改?像这样的东西: 问题答案: 是。您可以使用,如果你在属性利用插值。 但是,如果这不是一个插值属性,并且您希望它可以从应用程序中的其他位置更改(绝对不建议这样做,请阅读Common Pitfalls ),那么函数可以返回: 无论如何,对您来说最好的方法可能是更改更改元素类的代码。它何时更改?

  • 我正试图阻止woo-commerce发送邮件时,订单状态更改。这些订单是亚马逊的,我的插件从亚马逊同步到Woo-Commerce。在这样做的时候,亚马逊和woo-commerce的邮件都收到了,这激怒了客户。因此,我想停止电子邮件功能停止时,状态从我的插件更改。要更改状态的代码是 有没有可以设置的标志来避免发送邮件? 任何种类的帮助都是非常感谢的。