我用在我的模型組合鍵,並根據我的組合鍵生成ID:骨幹做,而不是在更新PUT POST當複合鍵用於
app.Assignment = Backbone.Model.extend({
idAttribute : [ 'personId', 'jobId' ],
parse : function(resp) {
resp.id = resp.personId + "_" + resp.jobId;
return resp;
}
});
但骨幹仍然認爲所有實例Assignment是新的,所有雖然我從API中獲取它們時在parse方法中設置了id。因此,Backbone不會執行刪除操作,並在更新時執行POST而不是PUT操作。我該如何解決這個問題?或者什麼是「正確的方法」來做到這一點?
更新:
看起來像this.id更換resp.id解決了這個問題。
Backbone不支持組合鍵,因此將'idAttribute'定義爲數組無效。每個模型必須有一個ID字段。你的資源網址是什麼樣的? – jevakallio 2013-03-04 11:23:00
它確實支持複合鍵:https://github.com/documentcloud/backbone/pull/1558其實我通過這樣做解決了它.id = ...而不是resp.ide = ... – 2013-03-04 13:37:31
啊,你使用https://github.com/caseywebdev/backbone-composite-keys。在問題中提到它會有道理。 – jevakallio 2013-03-04 13:53:46