配合 我有以下幾點:骨幹收集驗證
App.Collections.Bookings = Backbone.Collection.extend({
url: 'bookings/',
model: App.Models.Booking,
howManyArriving: function() {
var bg = _.countBy(this.models, function(model) {
return model.get('indate') == moment().format('YYYY-MM-DD') ? 'even' : 'odd';
});
var lv = _.filter(this.models, function(model){
return model.get('indate') == moment().format('YYYY-MM-DD');
});
var r = {
count: bg,
models: lv
}
return r;
},
availableBtwn: function(bed,indate,outdate) {
var gf = _.filter(this.models, function(model){
return (
model.get('outdate') > outdate &&
model.get('indate') <= indate &&
model.get('id_bed') == bed
);
});
return gf;
},
getBooking: function(bed, date){
var gf = _.filter(this.models, function(model){
return (
model.get('outdate') > date &&
model.get('indate') <= date &&
model.get('id_bed') == bed
);
});
return gf;
},
getFullName: function(id){
var b = this.get(id);
return b.get('nombre') + ' ' + b.get('apellido');
}
});
我需要檢查時,我填充集合,當我加入一個單一的模式,如果有已經與等於模型確定propperties現有的模型/我正在嘗試創建。 我已經試過這樣的事情:
App.Collections.Bookings.prototype.add = function(bookings) {
_.each(bookings, function(book){
var isDupe = this.any(function(_book) {
return _book.get('id') === book.id;
});
if (isDupe) {
//Up to you either return false or throw an exception or silently ignore
return false;
}else{
Backbone.Collection.prototype.add.call(this, book);
}
//console.log('Cargo el guest: ' + guest.get('id'));
}, this);
}
的事情是,它的工作原理,但是當我填充集合,它不是由App.Models.Booking填充,但響應的JSON。
有什麼想法?
非常感謝!
「*的事情是,它的工作原理,但是當我填充集合,它不是由應用程序填充。 Models.Booking,但帶有響應的JSON。*「請問你能更具體嗎? – Loamhoof
哦,順便說一句,看來你無視任何東西重寫添加方法。調用add時,'merge'標誌設置爲false將具有這種確切的行爲。此外,事情是,默認情況下,爲add方法設置爲false。 – Loamhoof
我想驗證集合上的新條目。我已經實現了驗證,但添加方法是添加平面JSON,而不是在集合中插入帶有JSON值的新模型。 – Pablo