我正在开发我的应用中的搜索功能。我要做的是按品牌过滤汽车。我的路线中有以下内容:
import Ember from 'ember';
export default Ember.Route.extend({
actions: {
filterCars(car){
this.transitionTo('cars',{ queryParams: {brand: car}});
}
},
queryParams: {
brand: {
refreshModel: true
}
},
model(params) {
if(params['marca'] != null){
this.get('store').query('car', { filter: { brand: params['marca'] } }).then(function(cars) {
return cars;
});
} else {
return this.get('store').findAll('car');
}
}
});
当我从params获得该品牌时,我只过滤了具有该品牌的汽车。我认为它会起作用,但它不起作用。我知道我做错了什么?
答案 0 :(得分:0)
问题的症状是什么?
我注意到你的model
钩子有一个带有两个分支的if语句,但只有一个(else分支)导致函数返回一个值。 if
分支解决了一个承诺,但没有做任何事情。
另外:您为汽车路线显示的代码是什么?您可以通过更改brand
参数来简化此页面。我不确定你是否需要转换到相同的路线。
答案 1 :(得分:0)
在过滤器中使用where子句
import Ember from 'ember'; export default Ember.Route.extend({ actions: { filterCars(car){ this.transitionTo('cars',{ queryParams: {brand: car}}); } }, queryParams:{ brand:{ refreshModel: true } }, model(params) { if(params['marca'] != null){ this.get('store').query('car', { filter: { where:{brand: params['marca'] } }}).then(function(cars) { return cars; }); } else { return this.get('store').findAll('car'); } } });