计算公共函数中的淘汰验证错误消息

时间:2013-11-11 17:28:10

标签: knockout.js knockout-validation

我有jsFiddle here

在knockout viewmodel中有一个数组,每个数组元素都会引发错误。有没有办法计算整个视图模型的错误消息数,并通过公共javascript函数访问它?

这里的想法是计算viewmodel的总错误,然后在javascript公共函数中执行一些操作。

由于

2 个答案:

答案 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)

为什么不使用内置功能?

ko.validation.group

它返回一个带有错误的可观察数组

http://jsfiddle.net/tRVCr/4/