Как изменить параметры запроса в Ember?
Я пишу обработчик действий в route:application
:
actions: {
changeFoo(foo) {
// I want to change the fooId queryParam to foo.get('id')
}
}
Проблема в том, что единственные документированные способы изменения параметров запроса, которые я могу найти, transitionTo('some.route', someModel, { queryParams: { ... } }
и replaceWith
версия такая же. Но я в route:application
, поэтому я не знаю название текущего маршрута. Это означает, что я не знаю, каков первый аргумент transitionTo
было бы.
Есть ли другой способ получить URL, чтобы стать ?fooId=123
?
2 ответа
Решение
Вам не нужно текущее название маршрута. Вы можете просто сделать 'transitionTo({queryParams: { foo: 123 }) ". Маршрутизатор применит его к правильному маршруту.
Из контроллера: приложение, которое вы можете установить параметр запроса foo
как это:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['foo'],
actions: {
updateMyQueryParam() {
this.set('foo', 'hello');
}
}
});