我有jsFiddle
here:
在knockout viewmodel中有一个数组,每个数组元素都会引发错误。有没有办法计算整个视图模型的错误消息数,并通过公共javascript函数访问它?
这里的想法是计算viewmodel的总错误,然后在javascript公共函数中执行一些操作。
由于
答案 0 :(得分:2)
尝试这个小提琴的修改版本:http://jsfiddle.net/js8hh/4/
self.Errors = ko.computed(function() {
var errs = [];
for(var p in self) {
if(self.hasOwnProperty(p)) {
var pObj = self[p];
if(!!!ko.validation.utils.isValidatable(self[p])) {
console.info("ope, nvm");
} else {
if(!ko.validation.validateObservable(pObj)) {
errs.push({'Property':p,'Error':ko.utils.unwrapObservable(pObj.error)});
}
}
} else {
console.trace("skipping prototype property");
}
}
return errs;
});
然后在底部
addJointHolder: addJointHolder,
AllErrors: ko.computed(function() {
result = []
ko.utils.arrayForEach(jointholders(),function(jh) {
if(jh.Errors().length > 0) {
result.push({'JointHolder':jh,'Errors':jh.Errors()});
}
});
return result;
})
答案 1 :(得分:1)