我有一个余烬模型类别:
export default DS.Model.extend({
name: DS.attr('string'),
img: DS.attr('string'),
url: DS.attr('string'),
cnt: DS.attr('number'),
// parent_id: DS.belongsTo('category', {
// inverse: 'children',
// async: true
// }),
parent_id: DS.attr('string'),
// children: DS.hasMany('category', {
// inverse: 'parent_id',
// async: true
// }),
children: DS.attr(),
isSelected: false,
isExpanded: false,
hasChildren: function() {
return this.get('children').get('length') > 0;
}.property('children').cacheable(),
isLeaf: function() {
return this.get('children').get('length') == 0;
}.property('children').cacheable()
});
在我的索引路线中,我有:
export default Ember.Route.extend({
model: function() {
var store = this.store;
return Ember.ArrayProxy.create({
categories: store.find('category'),
menuTopCategories: store.find('category', { parent_id: 1 })
});
}
});
我正在使用RESTAdapter,因此store.find将向服务器发送两个请求:categories
和categories?parent_id=1
。
我想只有第一个请求,然后筛选类别。我尝试了store.all
- 因为我看到它重用了已经获取的数据,但我无法设法应用过滤器。
答案 0 :(得分:0)
我已经重写了menuTup类别而我没有#39;要查看新请求:
menuTopCategories: store.filter('category', function(category) {
return category.get('parent_id') === "1";
})
我现在的问题是在没有对parent_id进行硬编码的情况下获取根类别(第一个)。