0

私は残り火モデルのカテゴリを持っています:

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 は 2 つのリクエストをサーバーに送信します:categoriescategories?parent_id=1. 最初のリクエストのみを取得してから、カテゴリをフィルタリングしたいと思います。試し てみstore.allました-すでに取得したデータを再利用するのを見たので、フィルターを適用できません。

4

1 に答える 1

0

menuTopCategories を書き直しましたが、新しいリクエストが表示されません。

menuTopCategories: store.filter('category', function(category) {
   return category.get('parent_id') === "1";
})

私の今の問題は、parent_id をハードコーディングせずにルート カテゴリ (最初のカテゴリ) を取得することです。

于 2014-12-16T12:02:16.730 に答える