2017-01-05 4 views
3

Я создаю свое первое приложение EmberJS.Ember js получить объект с предыдущего маршрута

Первоначально из маршрута указателя, я покажу A. Когда пользователь нажимает A, он направит на /a. Компонент A будет иметь поле url, после заполнения и нажатия кнопки он направит на /b. Компонент B также имеет полевую электронную почту. Заполните и щелкните по кнопке, на которой он будет маршрутизироваться до /summary, который отображает то, что я заполнил в A и B. Как я мог сделать это в лучшей практике?

Я использую ember-cli и this.transitionTo(/b) идти к маршруту /b

+1

Вместо указания URL-адреса, вы можете передать название маршрута 'this.transitionTo ('a')' – kumkanillam

+0

Для этого вы должны построить обманщик. :) – sheriffderek

ответ

2

Похоже, вложенные маршруты было бы хорошо для этой реализации.
/а - маршрут

model(){ 
return {url:'default'}; 
} 

a.hbs

{{comp-a model=model}} 

/а/б - маршрут

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

а/b.hbs

{{comp-b model=model}} 

/а/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 }} 
+0

Могу ли я сделать общий магазин, как то, что ReactJS делает и импортирует в любом месте? До сих пор я не мог найти, как это сделать –

+1

Да. Это еще один вариант, вы можете сделать это, создав [services] (https://guides.emberjs.com/v2.10.0/applications/services/#toc -toggle). таким образом, вы можете ввести его в любом месте, чтобы получить данные – kumkanillam

+0

, если я использую {{# link-to}}, служба не будет работать? –

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'); 
    }); 
}); 

, а затем вы можете использовать модель «заказа» или «форму» для сохранения информации.

Я следовал примеру и построил один из них с возможностью редактирования и подтверждения в конце тоже. :)

Смежные вопросы