Ben tanımlanmış bir model ve bir koleksiyon var: Belirli bir renge sahip Kutu modellerinin yapılmış yeni kutular koleksiyon koleksiyon modelleri ile doldurulurFiltre omurga toplama
var Box = Backbone.Model.extend({
defaults: {
x: 0,
y: 0,
w: 1,
h: 1,
color: "black"
}
});
var Boxes = Backbone.Collection.extend({
model: Box
});
gerek tam koleksiyonda yer alan özellik, ben bu şekilde yapın:
var sorted = boxes.groupBy(function(box) {
return box.get("color");
});
var red_boxes = _.first(_.values(_.pick(sorted, "red")));
var red_collection = new Boxes;
red_boxes.each(function(box){
red_collection.add(box);
});
console.log(red_collection);
Bu işler, ama biraz karmaşık ve unefficient bulabilirsiniz. Aynı şeyi daha basit bir şekilde yapmanın bir yolu var mı? Ben koleksiyonuna yeni bir örneğini dönen gibi http://jsfiddle.net/HB88W/1/
Will bu değişim cid görüyor musunuz? – janetsmith
filterBy: işlev (öznitelik, değer) { süzüldü = this.filter (fonksiyonu (kutu) { dönüş box.get (özellik) === değeri; }); yeni döndü Kutular (filtrelenmiş); } – Josh
Neden ') (a' yeni Kutuları dönün. Kutu, byColor: function (renk) { dönüş this.filter (function (kutu) { dönüş box.get ("color") = I var Kutular = Backbone.Collection.extend ({ modeli yazardı == rengi; }); } }); – marcoslhc