Knockout.validationプラグインを使用しようとしています。 exampleViewModelを作成しました:
function exampleViewModel() {
this.P1 = ko.observable().extend({ required : true });
this.P2 = ko.observable().extend({ required : true });
this.P3 = ko.observable().extend({ required : true });
this.P4 = ko.observable().extend({ required : true });
this.errors = ko.validation.group(this);
}
上記のビューモデルでは、現在のオブジェクトに対してerrorsという名前の検証グループを作成しました。これで、4つのうち1つのプロパティで検証ルールが失敗した場合、このエラープロパティにはエラーメッセージが含まれます。
My question is
、3つのプロパティのみの検証グループを作成する場合(P1, P2, P3)
4つのうち、どうすればこれを行うことができますか?
これは私にとってはうまくいきました。 this
でグループ化するのではなく、検証するプロパティを保持するプロキシオブジェクトを作成します。
this.errors = ko.validation.group({
P1: this.P1,
P2: this.P2,
P3: this.P3
});
これを行う場合は、validatedObservable
の代わりにgroup
の使用を検討してください。エラーが発生するだけでなく、isValid
プロパティを使用して、すべてのプロパティが有効かどうかをまとめて確認できます。
this.validationModel = ko.validatedObservable({
P1: this.P1,
P2: this.P2,
P3: this.P3
});
// is the validationModel valid?
this.validationModel.isValid();
// what are the error messages?
this.validationModel.errors();
documentation で説明されているように、特定のオブザーバブルのみを検証する正しい方法は次のとおりです。
this.errors = ko.validation.group([this.P1, this.P2, this.P3]);