Cuando vinculo datos numéricos en mi modelo de vista usando knockout, se muestra correctamente pero cambia el tipo de datos a cadena si el usuario cambia el valor de la etiqueta de entrada. El problema al enviar cadena es que el servidor espera un valor numérico sin conversión implícita disponible.Knockout.js: formato de entrada de tiempo y restricción de valor
¿Alguna manera de decirle a nocaut para mantener el tipo de datos del valor de propiedad original?
Mi código de ejemplo que coincide con los nombres de modelo de vista a los nombres de etiqueta de entrada. Uso un knockout discreto para hacer las fijaciones, que funciona bien.
// Bind the first object returned to the first view model object
// FNS is the namespace, VM is the view model
FNS.VM.Items[0] = ko.mapping.fromJS(data.Items[0]);
// For each property found, find the matching input and bind it
$.each(FNS.VM.Items[0], function (indexInArray, valueOfElement) {
var attrName = indexInArray;
var attrValue;
if (typeof valueOfElement == "function")
attrValue = valueOfElement();
else
attrValue = valueOfElement;
var a = $('input[name="' + attrName + '"][type="checkbox"]');
if (a.length)
a.dataBind({ checked: 'VM.Items[0].' + attrName });
var b = $('input[name="' + attrName + '"][type="radio"]');
if (b.length)
b.dataBind({ checked: 'VM.Items[0].' + attrName });
var c = $('input[name="' + attrName + '"][type="text"]');
if (c.length)
c.dataBind({ value: 'VM.Items[0].' + attrName });
});
ko.applyBindings(FNS);
Su respuesta me llevan a [esta respuesta] (http://www.knockmeout.net/2011/03/reacting-to-changes-in- knockoutjs.html) en ** Depende de dependientes dependientes **, que colectivamente responde mi pregunta. Gracias –
Nota rápida: leyendo los commits de Knockout veo que RP Niemeyer hace referencia a su propia respuesta aquí con una nota rápida: https://github.com/knockout/knockout/pull/1334 Hay una forma más compatible de invocar la línea ko. bindingHandlers.value.init ... –
Cualquiera que lea esto, tenga en cuenta que dependientebservible() ahora se llama calculado() – Quango