knockout.js - data - observable knockout js
¿Cómo eliminar el extensor de un observable existente? (2)
Estoy usando el complemento de Validación de Knockout y configurando un observable según sea necesario con el extensor:
myObservable.extend({required:true});
¿Puedo quitar el extensor después de agregarlo?
Puede eliminar todas las propiedades relacionadas de validación de un observable que se agregaron con la validación ko con la llamada:
myObservable.extend({validatable: false});
O si solo desea eliminar la validación requerida, puede eliminarla de la colección de rules
:
myObservable.rules.remove(function (item) {
return item.rule == "required";
});
}
Demo JSFiddle .
Pero la validación ko tiene soporte para la validación condicional , por lo que puede especificar alguna condición cuando la validación debería funcionar, así que tal vez esto es lo que necesita:
myObservable.extend({
required: {
message: "Some message",
onlyIf: function () { return //some condition; }
}
});
respuesta funciona con una pequeña corrección tipográfica: la función en la llamada remove (...) debe devolver un valor booleano (es decir, ''=='' en lugar de ''=''):
myObservable.rules.remove(function(item) { return item.rule == "required"; });
Demostración: JSFiddle