2014-10-07 2 views
2

Я хочу перечислить встречи людей с приложением ember. Я мой маршрут определяется как:Как получить ropereparameter подпрограммы в Ember

this.resource('person', { path: "person/:personid/" }, function() { 
    this.route('appointments', { path: "appointments/:date" }); 
}); 

Теперь у меня есть 2 Шаблоны

  1. человек - Шаблон: показать имя человека наверху, то {{выходные}}

  2. назначений - Шаблон: имеет обратную, дату и вперед кнопку, чтобы перемещаться по датам, а также перечисленные назначения

Контроллер назначений обрабатывает навигацию по датам по

controller.transitionToRoute("person.appointments",mydatevar) 

это также повторно выводит кнопки, потому что его в том же маршруте. И мне это не нравится.

Я пробовал разные подходы, но всегда, когда я отделяю навигацию от списка встреч, мне нужно как-то разобраться с датой на двух контроллерах или маршрутах.

Навигация должен знать состояние «подпрограммы» -параметра назначения маршрута. И я думаю, что это совершенно неправильно.

Я запутался в настоящее время :-(

может кто-нибудь помочь мне?

ответ

0

Есть два способа.

1. needs: http://emberjs.com/guides/controllers/dependencies-between-controllers/ 
2. send: http://emberjs.com/api/classes/Ember.Route.html#method_send 

Вы можете установить дату на контроллере назначений и использовать needs в для обмена данными с контроллером person. При этом вы можете иметь псевдоним с датой назначения на контроле пользователя.

App.PersonController = Em.ObjectController.extend({ 
    needs: 'appointments', 
    date: Ember.computed.alias('controllers.appointments.date') // whatever the date property is 
}); 

Вы можете отправить действие родительскому маршруту, сообщив, что дата изменилась.

App.PersonRoute = Em.Route.extend({ 
    actions: { 
    dateChanged: function(newDate){ 
     this.controller.set('date', newDate); 
    } 
    } 
}); 

App.AppointmentsRoute = Em.Route.extend({ 
    model: function(params){ 
    this.send('dateChanged', params.date); 
    ... 
    } 
}); 
+0

это (оба) имеет смысл! Thx, я сейчас не в офисе, я проверю это завтра! – Weissvonnix

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