Ho ko.observableArray con convalida sugli articoli. L'utente può contrassegnare un elemento come cancellato. Quando viene contrassegnato come eliminato, devo disabilitare la convalida su quell'elemento.Convalida disabilitazione convalida disabilitazione
Come disabilitare la convalida in modo dinamico?
Esempio: http://jsfiddle.net/3RZjT/2/
<div data-bind="foreach: names">
<input data-bind="value: name, valueUpdate: 'afterkeydown'" /> <a data-bind="click: deleteMe, text:deleted()?'undelete':'delete'" href="#">delete</a><br/>
</div>
function Person(name){
var self = this;
self.name = ko.observable(name).extend({ required: true});
self.deleted = ko.observable(false);
self.deleteMe = function(){
self.deleted(!self.deleted());
self.deleted.extend({ validatable: !self.deleted()});
};
}
var viewModel = {
names: ko.observableArray([new Person("Ken"), new Person("")])
};
ko.applyBindings(viewModel);
prega di inserire un codice attuale. – Tomalak
Non ho davvero un tentativo perché non so cosa provare. Ho aggiornato con un esempio usando la risposta di @Anders, ma non ha funzionato per me. – Homer
Dovresti scrivere 'self.name.extend ({validatable:! Self.deleted()});' nella tua funzione 'deleteMe'. – nemesv