Как изменить параметры запроса в 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');
    }
  }
});
Другие вопросы по тегам