【发布时间】:2013-07-17 23:16:28
【问题描述】:
如何使用敲除验证将验证设置为数组?
我的对象定义
//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 中提到的“使用“create”自定义对象构造',但它正在创建一个重复的奖杯数组项,例如,如果我在奖杯中有两个列表项结果对象也有两个项目,但它与最后一个项目重复
// 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);
}
}
}
我想要的只是验证数组中的属性。谢谢
【问题讨论】:
标签: knockout.js knockout-mapping-plugin knockout-validation