私はノックアウトの検証プラグインを使用して、必要に応じてエクステンダーを使用して、観察を設定しています:私はそれを追加した後にエクステンダーを削除するため既存のオブザーバブルからエクステンダを削除するにはどうすればよいですか?
myObservable.extend({required:true});
それは可能ですか?
私はノックアウトの検証プラグインを使用して、必要に応じてエクステンダーを使用して、観察を設定しています:私はそれを追加した後にエクステンダーを削除するため既存のオブザーバブルからエクステンダを削除するにはどうすればよいですか?
myObservable.extend({required:true});
それは可能ですか?
あなたはすべての検証は、プロパティが呼び出すとKOの検証によって追加された、観察を形成関係削除することができます。
myObservable.extend({validatable: false});
それとものみ必要な検証を削除したい場合は、rules
コレクションから削除することができます:
myObservable.rules.remove(function (item) {
return item.rule == "required";
});
}
デモJSFiddle。
しかし、検証が動作する必要があるときあなたには、いくつかの条件を指定することができますので、KOの検証はので、多分、これは何が必要である、conditional validationをサポートしています:
myObservable.extend({
required: {
message: "Some message",
onlyIf: function() { return //some condition; }
}
});
私が必要としていたのはまさに私のものでしたが、エクステンダーの取り外しについて質問したのはどうでしたか?それはノックアウトによってサポートされていますか? –
いいえ、エクステンダー自体が変更を元に戻す方法を提供しない限り、エクステンダーを削除することはできません。 koバリデーションの場合、 'myObservable.extend({validatable:false});'コールは厳密にこれを行い、 '.extend({required:true});で追加されたバリデーション関連のものをすべて削除します。他のルールのいずれか。 – nemesv
myObservable.rules.remove ..いいです! – JMGH