update nur bestimmte Modell-Attribute verwenden Backbone.js
Mit Rückgrat, ich bin versucht, zu aktualisieren und speichern Sie Sie auf dem server nur ein Attribut:
currentUser.save({hide_explorer_tutorial: 'true'});
aber ich will nicht senden Sie alle anderen Attribute. Einige von Ihnen sind sogar der output-Methoden auf der server-Seite und damit Sie nicht tatsächlich wahr ist, Attribute mit Set-Funktionen.
Derzeit bin ich mit unset(attribute_name), entfernen Sie alle Attribute, die ich nicht wollen, Sie zu aktualisieren auf dem server. Problem ist, diese Attribute sind dann nicht mehr verfügbar für den lokalen Gebrauch.
Vorschläge, wie Sie nur speichern, werden bestimmte Attribute auf den server?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als der Backbone-0.9.9
Nur pass
{patch:true}
zu densave
Funktion, wie diese:Aus der Dokumentation,
Können Sie toJSON auf das Modell, das zu tun.
Wird dies das einzige Attribut an das backend gesendet auf speichern.
In der Tat gibt es eine viel einfachere Möglichkeit, dies zu erreichen
wenn man sich backbone.js line 1145, werden Sie sehen, dass
Was bedeutet, dass Sie möglicherweise überschreiben die Daten Teil des xhr, indem Sie Daten in Ihre Optionen
Seit Rückgrat speichern erfordert-Modell.speichern([attributes], [Optionen])
Aber denken Sie daran, dass die Attribute wie id sein könnte, unerlässlich, um eine ordnungsgemäße Speicherung
Beispiel
Für Ihren speziellen Fall
Diese den trick tun ganz gut für mich und könnte verwendet werden, mit jedem backbone mit xhr wie abrufen, speichern, löschen, ...
Vielen Dank für Ihre Stimme
contentType: 'application/json'
Optionen hash, da beim übergangdata
diese Weise ist es standardmäßigapplication/x-www-form-urlencoded
.Ich denke, dies ist derzeit nicht möglich: Backbone.js Teilmodell aktualisieren
Gibt es einen trick, wenn Sie nicht
data
Eigentum, sondernattrs
Eigenschaft auf dieoptions
argument, die Anfrage-payload wäre dasattrs
- Eigenschaft-Wert nicht alle Modell-Attribute.Hinweis: Dies funktioniert auch für Modell erstellen von Aktionen (POST).
Für Ihren speziellen Fall:
Finden Sie weitere details aus der backbone.js 1.33 source code (Zeile 1405 - 1409):