RESTORANIZ olmayan bir sunucu kullanarak bir Backbone koleksiyonunu kaydetme hakkında birçok gönderiye bakıyorum ve hala biraz kafam karıştı. Verilerimi, API'mize göndermek için özelleştirmem gereken toJSON
yöntemini geçersiz kılan bir koleksiyon oluşturdum ("/api/entity/735/request/personDelete"
şu anda jsfiddles/echo/json için değiştirildi). Ben Backbone.sync
, success
üzerinde kullanan bir save
yöntemi oluşturdum, herhangi bir yanıt çıkarım ve nesnenin boş olduğunu, şeylerin kaybolduğu veya yanlış yaptığım şeyden emin değilim; kimse bana rehberlik edebilir mi? Bu örneği çalışır hale getirmek isterim, böylece böyle bir şeyi ileriye taşımak için kullanabilirim.Backbone: Tüm koleksiyonu RESTORİ olmayan bir sunucuya kaydetme
JS
var PersonCollection = Backbone.Collection.extend({
model: PersonModel,
url: function() {
// Dummy JSFiddle endpoint
// Example non-RESTful url "/api/entity/735/request/personDelete"
return '/echo/json/';
},
/**
* Override toJSON to loop through collection models making
* custom objects containing specific attributes to be posted.
*/
toJSON: function() {
console.log(this.models);
var plucked = this.models.map(function(model) {
return _.pick(model.toJSON(), ["id","name", "teams"])
});
console.log(plucked);
return plucked;
},
save: function(options) {
Backbone.sync('create', this, {
success: function(data, textStatus, jqXHR) {
console.log('Saved!', data);
}
});
}
});
JSFiddle:http://jsfiddle.net/kyllle/f1h4cz7f/3/
Plase çek beklendiği gibi parametrelerin geçirilmesi (ki sanmıyorum) ve bir 2xx yanıt almak. Lütfen gönderinizi düzenleyin ve isteğin nasıl görüneceğini belirtin (ör. Form kodlu veya uygulama/json vb.). O olayın Backbone.sync() 'inin ihtiyaçlarınız için uygun olmadığını söyleyebilirim. Muhtemelen '$ .ajax() 'ı doğrudan' save() 'olarak kullanmak istersiniz, ya da o" standart olmayan "REST API ile iletişim kuran daha fazla modeliniz ve koleksiyonunuz varsa,' Backbone.sync'in üzerine yazmak isteyebilirsiniz.() 'yerine. –
Bu benim sorunumun bir parçası, şu anda, parametreleri nereye geçirmem gerektiğinden emin değilim, bu yüzden kaydetme etkili bir şekilde çalıştırılabilir mi? – styler
Gerçekten koleksiyondaki her şeyi kurtarmaya mı çalışıyorsunuz? Arka ucun RESTful olmadığını söylemiştin, ama arka ucun ne bekliyor? ve jsonu nasıl bekliyor? –