KnockoutJS se suscribe a los cambios de propiedad con Mapping Plugin

¿Hay alguna forma en que pueda decirle al complemento de asignación de nocauts que se suscriba a todos los cambios de propiedad que requieren una función determinada?

Me doy cuenta de que puedo suscribirme manualmente al evento de cambio de propiedad de esta manera:

<code>var viewModel = {
    name: ko.observable('foo'),
}

// subscribe manually here
viewModel.name.subscribe(function(newValue){
   // do work
})
</code>

Sin embargo, me gustaría poder suscribirme genéricamente, ya que mis modelos de vista pueden variar, no quiero codificar los nombres de las propiedades. Creé una función que hace esto, pero puede que no sea el mejor enfoque. Funciona en todos los navegadores excepto en IE7 y más abajo.

Aquí tomo un modelo de vista como argumento e intento reflexionar sobre él suscribiéndose a las propiedades:

<code>function subscribeToKO(data) {

        $.each(data, function (property, value) {
            if (getType(value) == "Object")
                data[property] = subscribeToKO(value);
            else if (getType(value) == "Array") {
                $.each(value, function (index, item) {
                    item = subscribeToKO(item);
                });
            }
            else {
                if (value.subscribe) {
                    value.subscribe(function (newValue) {
                        // do work                                         
                    });
                }
            }
        });
        return data;
    }
</code>

Como dije, esto funciona, pero ya que estoy usando el complemento de mapeo, esperaba que hubiera un gancho que pudiera usar para proporcionarle una función que genéricamente se suscriba a los cambios de propiedad.

Algo como:

<code>mapping = {
   create: function(options){
       options.data.subscribe(function(newValue){
            // do work ???
       });
   }
}

ko.mapping.fromJS(viewModel, mapping);
</code>

¿Algunas ideas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta