ノックアウト モデルの検証で次の問題があり、解決方法がわかりません。以下は、まず第一に、検証ルールを使用した私のモデルです。
var Data = function (data) {
this.Val = data;
}
function ViewModel(item) {
var parse = JSON.parse(item.d);
var self = this;
this.Name = ko.observable(parse.Name);
this.UserType = ko.observable(parse.UserType);
this.ID = ko.observable(parse.ID).extend({ required: { params: true, message: "ID is required" }, decimal: { params: 2, message: "Should be decimal"} });
this.Username = ko.observable(parsed.Username).extend({ required: {
onlyIf: function () {
return self.UserType() > 1;
}
}
});
this.WeeklyData = ko.observableArray([]);
var records = $.map(parse.WeeklyData, function (data) { return new Data(data) });
this.WeeklyData(records);
this.WeeklyData2 = ko.observableArray([]);
var records = $.map(parse.WeeklyData2, function (data) { return new Data(data) });
this.WeeklyData2(records);
}
ko.extenders.numeric = function (target, precision) {
var result = ko.dependentObservable({
read: function () {
return target().toFixed(precision);
},
write: target
});
result.raw = target;
return result;
};
ここに私の問題があります:
1) ID() オブザーバブルを使用して、小数点以下 2 桁に制限したいので、検証エクステンダー '数値' を作成しましたが、機能しません。私の使用方法とそれを修正する方法に問題はありますか?
2) また、オブザーバブルを整数に制限したい場合、どうすればそれを行うことができますか?
3) 条件 (つまり Username()) を使用してルールを定義する場合、そのカスタム メッセージを定義するにはどうすればよいですか? デフォルトルールではできたのですが、条件付きルールではうまくいきません
4) Data() オブジェクトを含む 2 つの監視可能な配列 WeeklyData1 と WeeklyData2 があります。これら 2 つの最小/最大ルールを個別に設定したいと考えています。どうすればそれを成し遂げることができますか?
4) 現在、エラー メッセージはデータ フィールドのすぐ隣に表示されますが、フィールドに対して '*' を表示しながら、すべてのエラー メッセージを単一の検証概要に表示したいと考えています。Validation-bindingsを使用するように言われましたが、使用方法がわかりません。誰か例を教えてください。
たくさんの質問があることは承知していますが、誰かが助けてくれれば幸いです。
前もって感謝します