Как исключить определенные свойства из Knockoutjs toJS ()

У меня есть следующая модель:

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

Я связываю различные элементы интерфейса с этими полями, что прекрасно работает. Однако я преобразую модель обратно в объект JavaScript, чтобы сохранить все изменения на сервере:

var goingToServer = ko.toJS(model);

goingToServer будет включать в себя свойства A, B и C. Однако, давайтеНапример, свойство C - это огромный массив данных, который никогда не изменится. Я'Я хотел бы избежать отправки этого обратно на сервер.

Есть ли способ сделатьtoJS() только включить предопределенный набор полей при преобразовании модели обратно в объект JavaScript?

Одна вещь, которую ямы расследуем этоПлагин Knockout Mapping, У него есть настройка под названиемвключают который задокументирован как таковой:

При преобразовании вашей модели представления обратно в объект JS по умолчанию подключаемый модуль будет включать только свойства, которые были частью вашей исходной модели представления, за исключением того, что он также будет включать свойство _destroy, созданное Knockout, даже если оно не было частью вашего исходного объекта. , Тем не менее, вы можете настроить этот массив:

Тем не менее, похоже, что этот плагин нет работать как документально, какko.mapping.toJS() будет по-прежнему включать A, B и C, даже если я перейду вinclude массив['A', 'B'], Я'Я предполагаю, что эта функция предназначена для включениядополнительный поля, которых не было в исходной модели.

Есть ли способ исключить определенные свойства при преобразовании модели обратно в объект JavaScript, если не делать что-то хакерское, например, генерировать объект и вручную удалять свойства, которые я не использую?хотите перед отправкой на сервер?

Ответы на вопрос(3)

Ваш ответ на вопрос