我有一系列交易,包括金额,描述,类型(借记/贷记)和类别(家庭,汽车,杂项等)。我试图过滤掉我的结果,只显示' 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;
}
},
答案 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")