Ember js从前一个路由获取对象

3
我正在构建我的第一个EmberJS应用程序。
最初从索引路由开始,我将显示一个A。当用户点击A时,它会路由到/a。组件A将有一个字段url,填写并单击按钮后,它将路由到/b。组件B还有一个电子邮件字段。填写并单击按钮后,它将路由到/summary,显示我在A和B中填写的内容。如何以最佳实践完成?
我正在使用ember-clithis.transitionTo(/b)来转到路由/b

1
你可以通过传递路由名称 this.transitionTo('a') 来替代明确指定 URL。 - Ember Freak
你应该为此构建一个 Ember-twiddle。:) - sheriffderek
2个回答

2
似乎嵌套路由对于这个实现是很好的选择。
/a - 路由
model(){
 return {url:'default'};
}

a.hbs

{{comp-a model=model}}

/a/b - route

model(){
 return {email:''};
}

a/b.hbs

{{comp-b model=model}}

/a/b/summary - 路由

model(){
 return {amodel:this.modelFor('a'),bmodel:this.modelFor('b')};
}

a/b/summary.hbs

{{comp-a model=model.amodel }}
{{comp-b model=model.bmodel }}

我不能像ReactJS一样做一个共享存储并随意导入吗?到目前为止,我还没有找到如何实现的方法。 - Le Duy Khanh
1
是的,这是另一种选择,您可以通过创建服务来实现。这样,您就可以在任何地方注入它以获取数据。 - Ember Freak
如果我使用{{#link-to}},服务会消失吗? - Le Duy Khanh
不会的。这里的定义是Ember.Service是一个在应用程序生命周期内存在的Ember对象,并且可以在应用程序的不同部分中提供使用。 - Ember Freak

1
这里有一个教程,详细解释了如何制作像你所要求的多步骤表单。使用嵌套路由系统,这相当简单明了。http://romulomachado.github.io/2016/12/06/multi-step-form-with-ember.html
Router.map(function() {
  this.route('checkout', function() {
    this.route('personal-info');
    this.route('shipping-info');
    this.route('payment-info');
    this.route('confirmation');
  });
});

然后您可以使用“order”或一些“form”模型来保持信息的活性。
我按照示例构建了一个带有编辑和确认功能的模型。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接