【问题标题】:Passing parameters between routes in Ember 2.x在 Ember 2.x 中的路由之间传递参数
【发布时间】:2017-01-10 05:40:33
【问题描述】:

从一条路线转到另一条路线时,我想传递一些数据(特别是数组)。怎么可能?

为什么我们不能对数组使用查询参数?

过渡期间在特定服务中存储数据是否有问题?

注意: 我知道有一些老问题与这个问题几乎相同。但是他们选择的答案不再适用于 Ember 2.x。这些问题是:12

【问题讨论】:

    标签: ember.js ember-router ember.js-2


    【解决方案1】:

    我不确定 queryparams 是否不适用于数组,因为我只将它与单个 id 一起使用,但即使它有效,它也不是一个好的解决方案,你可以通过参数发送多少是有限制的并且您不应该用您的数据打扰任何用户。

    1. 只需创建一个模型来保存您的数据以供本地使用,这样您就可以简单地使用 ember 商店

    2. 使用您必须在每个控制器中注入的服务,以使用您的数据

    我更喜欢模型/商店变体,这样您就可以观察并遵循正常流程,如果其他人必须维护您的代码,这也很好。

    【讨论】:

    • 您想要使用查询参数而不是商店的原因是因为您使用书签/共享网址的功能。
    【解决方案2】:

    更新

    使用“transition.data”测试后;不更新历史对我们来说似乎是个问题。所以我们再次使用“queryParams”。约束是:不要在路由之间传递复杂的对象

    老答案

    我在一个动作中使用transition对象来实现这个目的,同时路由如下:

    let transition = router.transitionTo(route, model);
    transition.data[propName] = propValue;
    

    我还编写了一个组件来将此代码用作链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      相关资源
      最近更新 更多