Что такое "подходящий" способ в Ember для отправки параметра с одного маршрута на другой? Например, у меня есть два маршрута, определенные как таковые:
this.resource('activities', { path: '/activities/:on_date' }, function() {
this.route('new');
});
когда на ActivitiesRoute
пользователю предоставляется раскрывающийся список возможных действий. Когда они выбирают что-то, он переходит к ActivitiesNewRoute
:
this.transitionToRoute('activities.new');
и я знаю, что есть второй параметр, доступный в методе transitionToRoute(route,model)
, но он предназначен для передачи в модели, и я предполагаю, что это не должно быть перепрофилировано для другой передачи параметров. В этом случае выборка выбирает идентификатор модели Action
, а модель для ActivitiesNew - это Activity
.
Вот мои три предположения о том, как это работает:
1) Сделать параметр маршрутизатора
Я предположил, что могу изменить ActivitiesNew
, чтобы включить "параметр" в качестве части маршрута:
this.route('new', { path: '/new/:my_parameter' });
Я не уверен, что мне действительно хотелось бы, чтобы это стало частью URL-адреса, но если бы это было преобладающим соглашением, я бы жил с этим.
2) Получить дескриптор, пост-переход
Сразу же после вызова transitionToRoute я могу установить свойство нового класса контроллера. Не уверен, что контроллер будет настроен, но я представляю себе что-то вроде:
this.transitionToRoute('activities.new');
this.get('target').controllerFor('activities.new').set('my_parameter', myValue);
3) Использовать параметр модели
this.transitionToRoute('activities.new',myValue);
Я подозреваю, что это серьезный не-нет. Я не заглянул в код Ember, чтобы узнать, может ли это работать, но похоже на соглашение, так что это мой "плохой вариант".