从一条路线到另一条路线时,我想传递一些数据(特别是数组)。这怎么可能?
为什么我们不能将查询参数与数组一起使用?
在过渡期间将数据存储在特定服务中是否存在问题?
注意: 我知道有一些老问题与这个问题几乎相同。但是他们选择的答案不再适用于 Ember 2.x。这些问题是:1 , 2。
我不确定 queryparams 是否不适用于数组,因为我只将它与单个 id 一起使用,但即使它有效,它也不是一个好的解决方案,你可以通过参数发送多少是有限制的,你应该不要用您的数据打扰任何用户。
只需创建一个模型来保存您的数据以供本地使用,因此您可以简单地使用 ember 商店
使用您必须在要使用数据的每个控制器中注入的服务
我更喜欢模型/商店变体,这样您就可以观察并遵循正常流程,如果其他人必须维护您的代码,这也很好。
更新
用“transition.data”测试后;不更新历史对我们来说似乎是个问题。所以我们再次使用“queryParams”。约束是:不要在路由之间传递复杂的对象
旧答案
我transition
在一个动作中为此目的使用对象,同时路由如下:
let transition = router.transitionTo(route, model);
transition.data[propName] = propValue;
我还编写了一个组件来将此代码用作链接。