如何使用 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 do
controller.set('dateFrom', null)to set the
queryParam`.
所以在路线上你可以this.controller.set('dateFrom', null)
,在控制器上this.set('dateFrom', null)
。
有点混乱,因为 queryParams
的配置分散在路由和控制器上。但是,queryParams
的 values 始终是直接路由属性。并且 不 嵌套在 queryParams
对象下。那只是配置。
在我的 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 do
controller.set('dateFrom', null)to set the
queryParam`.
所以在路线上你可以this.controller.set('dateFrom', null)
,在控制器上this.set('dateFrom', null)
。
有点混乱,因为 queryParams
的配置分散在路由和控制器上。但是,queryParams
的 values 始终是直接路由属性。并且 不 嵌套在 queryParams
对象下。那只是配置。