Ich habe ko.observableArrays mit Validierung für die Elemente. Der Benutzer kann ein Element als gelöscht markieren. Wenn es als gelöscht markiert ist, muss ich die Validierung für dieses Element deaktivieren.Knockout Validierung deaktivieren Validierung
Wie wird die Validierung dynamisch deaktiviert?
Beispiel: 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);
Sie bitte Ihre aktuellen Code enthalten. – Tomalak
Ich habe wirklich keinen Versuch, weil ich nicht weiß, was ich versuchen soll. Ich habe ein Beispiel mit @Anders Antwort aktualisiert, aber es hat nicht für mich funktioniert. – Homer
Sie sollten 'self.name.extend ({validatable:! Self.deleted()});' in Ihrer 'deleteMe' -Funktion schreiben. – nemesv