Angular ui路由器,通过url/url变量保存状态

Angular ui-router, save state by url/url variables?

本文关键字:url 变量 保存 状态 通过 ui 路由器 Angular      更新时间:2024-06-17

有一个有趣的问题,我正在尝试用angulars ui路由器插件来解决。我想做的是通过自定义url来保存视图状态。

我已经建立了一个非常基本的例子,看看这是否可能,如果它有效的话,我想抽象一下!

所以我只是有一个

$scope.test = false;

然后在页面上点击ng,在true和false之间切换这个测试变量。因此,我想看看我是否可以保存该状态并将其传入-比如说,如果我将其更改为true,我希望能够保存一个URL,然后转到该URL,当我到达该状态时,该变量将更改为true(而不是控制器中默认的false)

所以我想我可以试试之类的东西

url: "test/{form_id}"

(我假设这就是工作原理),然而,我可能想传递的不仅仅是一个id。最好的情况是,我可以完全通过url传递对象(或者更确切地说,通过引用url,我知道传递对象听起来很傻),但除此之外,我假设在任何一端,我都必须设置一种方法来制作id的字符串并解释它。如果我能把它设计成多态的,那将是非常棒的,然而我的第一步是尝试在低水平上做到这一点。

所以我的想法是——每次你点击更改它都会设置一个变量,然后可以在url上设置。如果该url被提供给登录到该应用程序并进入该视图的人,则控制器将从该url中知道需要在加载时更改$scope.test=true。我想知道是否有可能用angular ui路由器来克服这个问题,如果有,如果有人愿意提供一些指导,我将不胜感激。感谢您的阅读!

您不能真正传递引用,因为您谈论的是应用程序的两个不同实例。但是您可以对对象进行JSON编码,对其进行URL编码并将其传递到URL上。如果太大,它将不会在所有浏览器中工作。在许多情况下,拥有一个更具语义的URL也会"更好",即不要传递一个大的旧blob,而是使用有意义的参数并传递这些参数。

$routeParams的文档位于https://docs.angularjs.org/api/ngRoute/service/$routeParams