如何更改 Ember 中的查询参数?

How do I change query parameters in 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 吗?

controller:application 你可以像这样设置查询参数 foo:

import Ember from 'ember';

export default Ember.Controller.extend({
  queryParams: ['foo'],

  actions: {
    updateMyQueryParam() {
      this.set('foo', 'hello');
    }
  }
});

您不需要当前路线名称。你可以做 'transitionTo({queryParams: { foo: 123 })'。路由器会将其应用到正确的路由。