Wie man bestimmte Eigenschaften von Knockoutjs toJS () ausschließt

Ich habe folgendes Modell:

var model = {
   A: 'One',
   B: 'Two',
   C: 'Three'
};

Ich binde verschiedene UI-Elemente an diese Felder, was großartig funktioniert. Ich konvertiere das Modell jedoch zurück in ein JavaScript-Objekt, damit ich alle Änderungen auf dem Server speichern kann:

var goingToServer = ko.toJS(model);

goingToServer Nehmen wir jedoch an, Eigenschaft C ist ein riesiger Datenblock, der sich nie ändern wird. Ich möchte vermeiden, dies an den Server zurückzusenden.

Gibt es einen Weg zu machentoJS() nur Beim Zurückkonvertieren eines Modells in ein JavaScript-Objekt einen vordefinierten Satz von Feldern einbeziehen?

Eine Sache, die ich untersucht habe, ist dieKnockout-Mapping-Plugin. Es hat eine Einstellung namensumfassen was als solches dokumentiert ist:

Wenn Sie Ihr Ansichtsmodell zurück in ein JS-Objekt konvertieren, enthält das Zuordnungs-Plug-in standardmäßig nur Eigenschaften, die Teil Ihres ursprünglichen Ansichtsmodells waren, mit der Ausnahme, dass die durch Knockout generierte Eigenschaft _destroy auch dann enthalten ist, wenn sie nicht Teil Ihres ursprünglichen Objekts war . Sie können dieses Array jedoch anpassen:

Es scheint jedoch, dass dieses Plugin nicht so funktioniert, wie es dokumentiert istko.mapping.toJS() wird immer noch A, B und C enthalten, auch wenn ich eininclude Anordnung von['A', 'B']. Ich vermute, dass diese Funktion enthalten sollzusätzlich Felder, die nicht im Originalmodell enthalten waren.

Gibt es eine Möglichkeit, bestimmte Eigenschaften auszuschließen, wenn ein Modell zurück in ein JavaScript-Objekt konvertiert wird, ohne etwas Hackiges zu tun, z. B. das Objekt zu generieren und die Eigenschaften, die ich nicht möchte, manuell zu entfernen, bevor sie an den Server gesendet werden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage