【发布时间】:2014-01-05 02:28:28
【问题描述】:
我希望能够使用 ui-router 转换到状态并传递任意对象。
我知道通常使用$stateParams,但我相信这个值是插入到 URL 中的,我不希望用户能够为这些数据添加书签。
我想做这样的事情。
$state.transitionTo('newState', {myObj: {foo: 'bar'}});
function myCtrl($stateParams) {
console.log($stateParams.myObj); // -> {foo: 'bar'}
};
有没有办法在不将值编码到 URL 中的情况下做到这一点?
【问题讨论】:
-
ui-router 机制在导航中保留 URL 状态。因此,如果用户刷新页面,他会回到他所在的页面。如果您不想使用此行为,请考虑使用其他机制(控制器/指令中的原始函数等),并使用 cookie/存储临时数据的存储
-
使用带有 url 的 localStorage 作为数据的关键?
-
值从何而来? Ui.router 具有“解析”的概念,用于在转换到请求状态之前将数据加载到范围。类似的还有 onEnter 和 onExit 方法。此外,您可以使用本地存储。
-
作为@JoshC。提到,听起来您可能想在移动到某个状态之前研究解析数据。 github.com/angular-ui/ui-router/wiki#resolve
-
查看stackOverlord的回答,了解如何正式做到这一点。
标签: javascript angularjs angular-ui-router