Realización de actualizaciones parciales con el complemento de mapeo KnockoutJS

En este momento, estoy usando este JSON con el complemento KO Mapping y está funcionando bien:

<code>{
  "Controls": [
    {
      "Fields": [
        {
          "Name": "emailField", 
          "Text": "email", 
          "Visible": true
        }, 
        {
          "Name": "hiddenField", 
          "Text": "text", 
          "Visible": true
        }
      ], 
      "Name": "form2", 
      "Type": "Form"
    }, 
    {
      "Data": [
        [
          "Federico Aloi", 
          20
        ], 
        [
          "Andres Lopez", 
          31
        ], 
        [
          "Pablo Perez", 
          32
        ]
      ], 
      "Fields": [
        {
          "Name": "nameField", 
          "Text": "Nombre", 
          "Visible": true
        }, 
        {
          "Name": "ageField", 
          "Text": "Edad", 
          "Visible": true
        }
      ], 
      "Name": "datagrid1", 
      "Type": "Datagrid"
    }
  ], 
  "Name": "pagina1", 
  "Title": "Probando el KO"
}
</code>

Ahora mi requisito es realizar "actualizaciones parciales". Algunos escenarios cuando me gustaría hacer eso:

Necesito cambiar la matriz de datos en el segundo control.Necesito actualizar solo un Control y no toda la Página (esta es la clase que estoy serializando, la raíz en este JSON).Necesito agregar otro control a mi página.

Quizás otra solución sería recrear el objeto original conko.mapping.toJS(viewModel), cámbielo y vuelva a mapearlo nuevamente ... pero creo que saldrá con algo mejor.

EDITAR: Lo intenté conko.mapping.fromJS(updatedControl, viewModel.Controls()[0]) pero no funcionó, aquí está mi código:

<code>function (control) {
    $.getJSON($.format('api/control/{0}/{1}', viewModel.Name(), control.Name()), function (response) {
        ko.mapping.fromJS(response, viewModel.Controls()[0]);
    });
},
</code>

respuesta:

<code>{
  "Fields": [
    {
      "Name": "emailField", 
      "Text": "email", 
      "Visible": true
    }, 
    {
      "Name": "hiddenField", 
      "Text": "text", 
      "Visible": true
    }
  ], 
  "Name": "form2", 
  "Type": "Form"
}
</code>

EDIT2: échale un vistazo ahttp://jsfiddle.net/faloi/4FcAy/10/

Respuestas a la pregunta(2)

Su respuesta a la pregunta