sto usando una chiave composta nel mio modello e generare l'ID in base alla mia chiave composta:Backbone fa POST invece di mettere su aggiornamenti quando chiave composta viene utilizzato
app.Assignment = Backbone.Model.extend({
idAttribute : [ 'personId', 'jobId' ],
parse : function(resp) {
resp.id = resp.personId + "_" + resp.jobId;
return resp;
}
});
ma Backbone pensa ancora che tutte le istanze di assegnazione sono nuovi, anche se sto impostando l'id nel metodo di analisi quando li prelevo dall'API. Di conseguenza, Backbone non esegue DELETE e fa un POST anziché PUT sugli aggiornamenti. Come posso aggirare questo o qual è il "modo giusto" per farlo?
Aggiornamento:
Sembra sostituzione resp.id con this.id risolve il problema.
Backbone non supporta chiavi composite, pertanto la definizione di idAttribute come matrice non è valida. Ogni modello deve avere un campo id. Come sono gli URL delle risorse? – jevakallio
Supporta le chiavi composite: https://github.com/documentcloud/backbone/pull/1558 in realtà l'ho risolto facendo this.id = ... invece di resp.ide = ... –
Ah, sei utilizzando https://github.com/caseywebdev/backbone-composite-keys. Avrebbe avuto senso menzionarlo nella domanda. – jevakallio