ノックアウト検証を使用して配列に検証を設定する方法は?
私のオブジェクト定義
//c# code
public class Trophy
{
public string Name { get; set; }
public string Category { get; set; }
public double PrizeMoney { get; set; }
}
public class Player
{
public string Name { get; set; }
public List<Trophy> Trophies { get; set; }
}
「名前」などの単純な型に対して ko 検証を使用して「必須」などの検証を設定することはできますが、配列であるトロフィーに設定することはできません。以下のように使用する単純なタイプの場合
// javascript code
var localModel = ko.mapping.fromJSON(getPlayerModelJson());
// Validation
localModel.Name.extend({ required: { message: 'Please enter first name' } });
トロフィーで名前、カテゴリ、賞金をどうするか教えてください。
http://knockoutjs.com/documentation/plugins-mapping.htmlに記載されているように、「「作成」を使用したオブジェクト構築のカスタマイズ」を利用しようとしましたが、重複するトロフィー配列アイテムを作成しています。トロフィーのリスト項目 結果のオブジェクトにも2つの項目がありますが、最後の項目と重複しています
// Java script code
var Trophies = function (data) {
Name = ko.observable(data.Name).extend({ required: { message: 'Please enter name' } }),
Category = ko.observable(data.Category),
PrizeMoney = ko.observable(data.PrizeMoney)
}
var localModel = ko.mapping.fromJSON(getPlayerModelJson(), TrophiesMapping);
//Custom mapping
var TrophiesMapping = {
'Trophies': {
create: function (options) {
return new Trophies(options.data);
}
}
}
私が欲しかったのは、配列内のプロパティを検証することだけです。ありがとう