我在Ember Route中遇到queryParams默认值的问题。我的路线类看起来像:
export default Ember.Route.extend({
queryParams: {
pageNumber: { refreshModel: true },
pageSize: { refreshModel: true }
},
model(params) {
console.log(params);
return this.store.query('user', {
page: {
number: params.pageNumber,
size: params.pageSize
}
});
}
});
和控制器:
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: {
pageNumber: 'page',
pageSize: 'limit'
},
pageNumber: 1,
pageSize: 25
});
但是如果url没有'page'和'limit'查询参数,则模型钩子参数有{pageNumber:undefined,pageSize:undefined}。有没有办法为Route queryParams设置deafault值,比如控制器queryParams?
答案 0 :(得分:5)
您可以在路由器模型挂钩中设置默认值,然后您无需在控制器中设置它们:
export default Ember.Route.extend({
queryParams: {
pageNumber: { refreshModel: true },
pageSize: { refreshModel: true }
},
model(params) {
params.pageNumber = params.pageNumber || 1;
params.pageSize = params.pageSize || 25;
return this.store.query('user', {
page: {
number: params.pageNumber,
size: params.pageSize
}
});
}
});
export default Ember.Controller.extend({
queryParams: {
pageNumber: 'page',
pageSize: 'limit'
}
});