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?