私は Knockout.Validation を使用しており、各行にエラー メッセージ (明らかに!) とそれに関連するビュー モデルのフィールド名が表示されるエラーの概要を表示できるようにしたいと考えています。
- 年齢 - 数字を入力してください
- 生年月日 - 適切な日付を入力してください
これまでのところ、ビュー モデルをラップする validatedObservable があり、これによりビューモデルにすべてのエラーを含むエラー配列が自動的に配置されます。ただし、各エラーがどのフィールドに関連しているかを簡単に取得する方法がわかりません。
ビュー モデルを自分でトラバースして、isValid プロパティから独自のエラー コレクションを構築できることはわかっていますが、これが唯一の選択肢でしょうか?
フィールド名を取得したら、検証の概要をそのフィールドに関連する「わかりやすい」ラベルにマップできます (たとえば、「DateOfBirth」ではなく「生年月日」)。
ここに私がこれまでに持っているコードの簡略化されたバージョンがあります:
ビューモデル
function PersonModel(){
var self = this;
self.Age = ko.observable().extend({ number: true});
self.DateOfBirth = ko.observable({ date: true});
self.Validate = function() {
if (!self.isValid()) {
self.errors.showAllMessages();
return false;
}
return true;
};
ko.validation.init({
grouping: { deep: true, observable: true },
registerExtenders: true,
messagesOnModified: true,
insertMessages: true
});
ko.applyBindings(ko.validatedObservable(new PersonModel()));
HTML
<ul data-bind='foreach: model().errors' class="message">
<li>
<span data-bind='text: $data'></span>
</li>
</ul>
どうもありがとう