Jak wykluczyć pewne właściwości z Knockoutjs toJS ()

Mam następujący model:

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

Łączę różne elementy interfejsu użytkownika z tymi polami, co działa świetnie. Konwertuję jednak model z powrotem na obiekt JavaScript, dzięki czemu mogę zapisać wszelkie zmiany na serwerze:

var goingToServer = ko.toJS(model);

goingToServer będzie zawierać właściwości A, B i C. Jednak załóżmy, że właściwość C jest ogromną porcją danych, która nigdy się nie zmieni. Chciałbym uniknąć wysyłania tego z powrotem na serwer.

Czy istnieje sposób na zrobienie tegotoJS() tylko dołączyć predefiniowany zestaw pól podczas konwersji modelu z powrotem na obiekt JavaScript?

Jedną z rzeczy, które badałem, jestWtyczka mapowania Knockout. Ma ustawienie o nazwiezawierać co jest udokumentowane jako takie:

Podczas konwersji modelu widoku z powrotem na obiekt JS domyślnie wtyczka odwzorowania będzie zawierać tylko właściwości, które były częścią oryginalnego modelu widoku, z wyjątkiem tego, że będzie również zawierała wygenerowaną przez Knockout właściwość _destroy, nawet jeśli nie była częścią oryginalnego obiektu . Możesz jednak dostosować tę tablicę:

Wygląda jednak na to, że ta wtyczka nie działa w sposób udokumentowany, jakko.mapping.toJS() nadal będzie zawierać A, B i C, nawet jeśli przejdęinclude tablica['A', 'B']. Zgaduję, że ta funkcja ma obejmowaćdodatkowy pola, które nie były w oryginalnym modelu.

Czy istnieje sposób na wykluczenie pewnych właściwości podczas konwersji modelu z powrotem na obiekt JavaScript, poza robieniem czegoś hackiego, takiego jak generowanie obiektu i ręczne usuwanie właściwości, których nie chcę przed wysłaniem na serwer?

questionAnswers(3)

yourAnswerToTheQuestion