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

标签 javascript angularjs angular-ui-router

有一个有趣的问题,我想看看是否可以使用 Angulars ui 路由器插件来解决。我想做的是通过自定义 url 保存 View 状态。

我已经设置了一个非常基本的示例来看看这是否可能,然后我想对其进行抽象,如果它有效的话!

所以我很简单

$scope.test = false;

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

所以我想我可以尝试类似的事情

url: "test/{form_id}"

(我假设这就是它的工作原理),但是我可能想要传递的不仅仅是一个 id。最好的情况是我可以完全通过 url 传递一个对象(或者更确切地说引用一个对象,我知道传递一个对象听起来很愚蠢),但否则我假设在任一端我都必须设置一种方法来使字符串id 和解释它的方法。如果我可以将其设计为多态,那就太棒了,但是我的第一步是尝试在较低的级别上做到这一点。

所以我的想法是 - 每次您单击更改时,它都会设置一个变量,然后可以在 url 上设置该变量。如果将 url 提供给登录此应用程序并进入该 View 的人,则 Controller 将从 url 中知道它需要在加载时更改 $scope.test = true 。我想知道是否可以使用 Angular-ui-router 来克服这个问题,如果可以的话,如果有人愿意提供一些指导,我将非常感激。感谢您的阅读!

最佳答案

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

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

关于javascript - Angular ui-router,通过 url/url 变量保存状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28769028/

相关文章:

javascript - AngularJS - UI 路由器 - 检查登录后闪烁

javascript - html div 中的 XML?

javascript - 如何在点击时删除父元素? - Angular JS

javascript - 如何将变量从 Controller 内的函数传递到 Controller 作用域?

angularjs - 测试 angular.service 也是一个 promise

angularjs - 用户界面路由器 : passing in a param that not in the url?

angularjs - Angular-ui-router: ui-sref-active with child active

javascript - 是否有 "0b"或类似的东西来表示 Javascript 中的二进制数

javascript - 添加文档访问被拒绝

javascript - 在 angular.js 的一项服务中重用方法