Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 在Ember 2.x中的路由之间传递参数_Ember.js_Ember Router_Ember.js 2 - Fatal编程技术网

Ember.js 在Ember 2.x中的路由之间传递参数

Ember.js 在Ember 2.x中的路由之间传递参数,ember.js,ember-router,ember.js-2,Ember.js,Ember Router,Ember.js 2,在从一个路由到另一个路由时,我想传递一些数据(特别是数组)。怎么可能呢 为什么不能对数组使用查询参数 在转换期间,在特定服务中存储数据是否存在问题 注意: 我知道有些老问题和这个问题差不多。但他们选择的答案不再适用于Ember 2.x。这些问题是: 我不确定queryparams是否能与数组一起工作,因为我只在单个ID上使用它,但即使它能工作,也不是一个好的解决方案,通过参数可以发送的数量是有限制的,您不应该用数据打扰任何用户 只需创建一个模型来保存您的数据供本地使用,这样您就可以简单地使用em

在从一个路由到另一个路由时,我想传递一些数据(特别是数组)。怎么可能呢

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

在转换期间,在特定服务中存储数据是否存在问题

注意:
我知道有些老问题和这个问题差不多。但他们选择的答案不再适用于Ember 2.x。这些问题是:

我不确定queryparams是否能与数组一起工作,因为我只在单个ID上使用它,但即使它能工作,也不是一个好的解决方案,通过参数可以发送的数量是有限制的,您不应该用数据打扰任何用户

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

  • 使用一个服务,你必须将它注入到你想要使用数据的每个控制器中


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

    更新了

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

    旧答案

    为此,我在一个操作中使用了
    transition
    对象,如下所示:

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

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

    您希望使用查询参数而不是存储的原因是,这样您就可以使用书签/共享url的功能。