我有以下代码:
function JobTask() {
var self = this;
self.description = ko.observable('').extend({
required: true
});
self.priority = ko.observable('').extend({
number: true,
required: true
});
self.complete = ko.observable(false);
}
function CreateJobViewModel() {
var self = this;
self.task = ko.observable(new JobTask());
self.taskErrors = ko.validation.group(self.task);
self.addTask = function () {
if (self.taskErrors().length) {
console.log(self.taskErrors());
self.taskErrors.showAllMessages();
}
else {
...
}
};
}
问题是,当我添加任务时,即使我正确输入了字段,由于某种原因它也是无效的。控制台输出[null]
. 经过进一步调查,似乎即使我没有正确输入我的字段,我taskErrors
数组中的第一项总是[null]
. 所以它可能看起来像:[null], "This field is required."
. 不知道我做错了什么?
编辑
这是我为这个问题创建的小提琴:http: //jsfiddle.net/5kh6h/1/