想法是当type
参数更改时,我会将page
参数值修改为其默认值。
我尝试了this.queryParams.page = 1
,但它不起作用。
我也试过了this.paramsFor(this.routeName).page = 1
但也没用。
我该如何解决这个问题?感谢。
Ember.Route Class:
import Ember from 'ember';
export default Ember.Route.extend({
queryParams: {
page: {refreshModel: true},
type: {refreshModel: true}
},
model(params) {
return this.store.query('posts', params);
},
actions: {
queryParamsDidChange(changed, totalPresent, removed) {
this._super(...arguments);
if(changed.type) {
//TODO: Modify the value of page parameter
}
}
}
});
Ember.Controller类:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['page', 'type'],
page: 1,
type: null
});
答案 0 :(得分:1)
查询参数绑定到控制器属性,如第二个代码块所示。要更改查询参数,您必须更改控制器上的属性:
type ErrorHandler<T> = (error: any) => Observable<T>
话虽如此,如果您要从queryParamsDidChange(changed, totalPresent, removed) {
this._super(...arguments);
if (changed.type) {
this.controller.set('page', 1);
}
}
内部更改查询参数,您可能会进入一个不断更改查询参数的无限循环,所以要小心!