在我的Ember应用程序中,我使用查询参数刷新模型数据并显示新信息。我有一个用例,需要清除所有数据并以“新”过滤器开始。
我正在尝试在余烬应用程序中创建一个“重置”按钮。此按钮应将URL中的现有查询参数还原为null。
查询参数在路由上的配置如下:
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文档没有讨论清除参数,只是阻止它们发粘。
答案 0 :(得分:1)
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
的值始终是直接路由属性。还有queryParams
对象下的 not 嵌套器。那只是配置。