multiple knockout data knockout.js knockout-validation knockout-extensions

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