我一直在關注如何使用非RESTful服務器保存Backbone集合的多篇文章,我仍然有點困惑。我創建了一個集合,我重寫了toJSON
方法來自定義我的數據以發佈到我的API("/api/entity/735/request/personDelete"
當前換成jsfiddles/echo/json)。所以我創建了一個save
方法,它使用Backbone.sync
,在success
我註銷了任何類型的響應,並且對象是空的,不確定事情會在哪裏丟失或我做錯了什麼;任何人都可以給我一些指導嗎?只是想讓這個例子工作,所以我可以繼續使用這樣的事情。Backbone:將整個集合保存到非RESTful服務器
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檢查,如果該請求時,這些參數傳遞的預期(我懷疑),你會得到一個2xx的應答。請編輯您的文章,指定請求的外觀(例如表單編碼或應用程序/ json等)。我會說事件'Backbone.sync()'可能不適合您的需求。你可能希望直接在'save()'中使用'$ .ajax()',或者如果你有更多的模型和集合與那個「非標準」REST API進行通信,你可能想覆蓋'Backbone.sync ()'而不是。 –
這是我現在問題的一部分,我不確定我需要傳遞參數的位置或方式,以便保存可以有效地運行? – styler
你真的想要保存收藏中的所有東西嗎?我知道你說過你的後端不是RESTful,但你的後端期望的是什麼?以及它如何期待json? –