Angular ui-router,通过url / url变量保存状态?

时间:2015-02-27 15:50:06

标签: javascript angularjs angular-ui-router

有一个有趣的问题我试图看看我是否可以使用angulars ui路由器插件解决。我想要做的是通过自定义网址保存视图状态。

我已经设置了一个非常基本的例子来看看这是否可行然后我想在这个问题上进行抽象,如果它有用的话!

所以我非常简单地有一个

$scope.test = false;

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

所以我觉得我可以尝试像

这样的东西
url: "test/{form_id}"

(我假设这是如何工作的),但我可能想传递的不只是一个id。最好的情况是我可以完全通过url传递一个对象(或者更确切地说是一个对象,我知道传递一个对象听起来很愚蠢),但除此之外,我在两端都假设我必须设置一种方法来制作id的字符串和解释它的方法。如果我可以将它变成多态的,那将是非常棒的,但是我的第一步是尝试能够在较低的水平上进行。

所以我的想法是 - 每次点击更改它都会设置一个变量,然后可以在网址上设置。如果将URL提供给登录此应用程序并转到该视图的人,则控制器将从URL知道它需要在加载时更改$ scope.test = true。我想知道是否有可能用angular-ui-router来征服它,如果有的话,如果有人愿意提供一些指导我会非常感激。谢谢你的阅读!

1 个答案:

答案 0 :(得分:1)

由于您正在讨论该应用的2个不同实例,因此无法真正传递引用。但你可以JSON编码你的对象,urlencode并在URL上传递它。如果它太大,它将无法在所有浏览器中工作。在许多情况下,拥有更多语义URL也是“更好”,即不是传递一个大的旧blob,而是使用有意义的参数并传递它们。

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