使用Backbone MV *过滤集合

时间:2014-11-27 00:17:53

标签: javascript backbone.js backbone-views backbone-collections

我有一系列交易,包括金额,描述,类型(借记/贷记)和类别(家庭,汽车,杂项等)。我试图过滤掉我的结果,只显示' home'此示例中的类别。我的另一个视图正在显示我的收藏中的所有结果。下面我试图创建一个新的集合'结果'然后将其输出到我的车把模板。

render: function () {
    var results = this.collection.where({category: "home"});
    var filteredCollectionHome = new Backbone.Collection(results);

    this.$el.html(this.template({filteredCollectionHome: this.collection.homeView(true)}));
}

homeView位于我的集合文件中。

homeView: function (toJSON) {
        this.sortByDate(-1); // descending so latest are first

        if(!toJSON) {
            return this.models;
        } else {
            var models = this.models,
                idx = -1,
                json = [],
                model;

            while(model = models[++idx]) {
                json.push(model.attributes);
            }
            return json;
        }   

    },

1 个答案:

答案 0 :(得分:0)

在您的收藏集中添加一个过滤所需数据的方法,并返回包含过滤结果的新收藏。

var Transactions = Backbone.Collection.extend({
  model: Transaction,

  byCategory: function(name) {
    filtered = this.filter(function(trans) {
      return trans.get("category") === name;
      });
    return new Transactions(filtered);
  }

});

var home_transactions = Transactions.byCategory("home")