如何使用 ember 操作将查询参数设置为 null?

How to set query param to null with an ember action?

在我的 Ember 应用程序中,我使用查询参数来刷新模型数据并呈现新信息。我有一个用例需要能够清除所有数据并从 'fresh' 过滤器开始。

我正在尝试在我的 ember 应用程序中创建一个 'reset' 按钮。此按钮应将 URL 中的现有查询参数恢复为空。

路由上配置查询参数如下:

export default Route.extend({
  queryParams: {
    dateFrom: {refreshModel:true},
    dateTo: {refreshModel:true},
    hours: {refreshModel:true}
  }
}),

我分别在路由和控制器上尝试了以下操作:

resetParams() {
      this.set('queryParams.hours', null)
    }

我也简单地尝试过 this.set('hours', null) 但这并没有什么不同。 Ember 文档没有讨论清除参数,只是阻止它们变得粘滞。

queryParams 始终出现在 controller 上。所以在控制器上你有类似 queryParams: ['dateFrom', 'dateTo', 'hours'] 的东西。然后你可以 directly docontroller.set('dateFrom', null)to set thequeryParam`.

所以在路线上你可以this.controller.set('dateFrom', null),在控制器上this.set('dateFrom', null)

有点混乱,因为 queryParams 的配置分散在路由和控制器上。但是,queryParamsvalues 始终是直接路由属性。并且 嵌套在 queryParams 对象下。那只是配置。