używam klucza kompozytowego w moim modelu i generowania identyfikatora na podstawie mojego klucza kompozytowego:Backbone robi POST zamiast umieścić na aktualizacjach gdy klucz kompozytowy służy
app.Assignment = Backbone.Model.extend({
idAttribute : [ 'personId', 'jobId' ],
parse : function(resp) {
resp.id = resp.personId + "_" + resp.jobId;
return resp;
}
});
ale Backbone nadal uważa, że wszystkich przypadkach przydziału są nowe, mimo że ustawiam identyfikator w metodzie parsowania podczas pobierania z interfejsu API. W rezultacie Backbone nie robi żadnych DELETE i wykonuje POST zamiast PUT na aktualizacjach. Jak mogę obejść ten problem lub co jest "właściwą drogą", aby to zrobić?
Aktualizacja:
Wygląda zastępując resp.id z this.id rozwiązuje ten problem.
Szkielet nie obsługuje kluczy złożonych, więc definiowanie 'idAttribute' jako tablicy jest niepoprawne. Każdy model musi mieć jedno pole identyfikatora. Jak wyglądają adresy URL Twoich zasobów? – jevakallio
Obsługuje klucze kompozytowe: https://github.com/documentcloud/backbone/pull/1558 faktycznie rozwiązałem go, wykonując this.id = ... zamiast resp.ide = ... –
Ah, jesteś przy użyciu https://github.com/caseywebdev/backbone-composite-keys. Byłoby sensowne wspomnieć o tym w pytaniu. – jevakallio