Como excluir determinadas propriedades do Knockoutjs toJS ()

Eu tenho o seguinte modelo:

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

Eu ligo vários elementos da interface do usuário para esses campos, o que funciona muito bem. No entanto, converto o modelo de volta em um objeto JavaScript para poder salvar as alterações no servidor:

var goingToServer = ko.toJS(model);

goingToServer incluirá propriedades A, B e C. No entanto, digamos que a propriedade C é uma grande quantidade de dados que nunca serão alterados. Eu gostaria de evitar o envio de volta para o servidor.

Existe uma maneira de fazertoJS() só incluir um conjunto predefinido de campos ao converter um modelo de volta para um objeto JavaScript?

Uma coisa que eu tenho investigado é aPlug-in de Mapeamento do Nocaute. Tem um cenário chamadoincluir que é documentado como tal:

Ao converter seu modelo de visualização de volta para um objeto JS, por padrão, o plug-in de mapeamento incluirá apenas propriedades que faziam parte de seu modelo de visualização original, exceto que também incluiria a propriedade _destroy gerada por Knockout mesmo que não fizesse parte de seu objeto original . No entanto, você pode optar por personalizar essa matriz:

No entanto, parece que este plugin não funciona como documentado, comoko.mapping.toJS() ainda incluirá A, B e C, mesmo que eu passe em uminclude matriz de['A', 'B']. Eu estou supondo que este recurso é destinado a incluiradicional campos que não estavam no modelo original.

Existe uma maneira de excluir determinadas propriedades ao converter um modelo de volta para um objeto JavaScript, além de fazer algo hacky, como gerar o objeto e remover manualmente as propriedades que não quero antes de enviar para o servidor?

questionAnswers(3)

yourAnswerToTheQuestion