我已经玩过Knockout验证,现在我想知道是否可以扩展Knockout以便每个视图模型都可以观察到我从验证中获得的错误列表? 一般来说我有
self.validationData = {
name: ko.observable('').validateUpperEmail(),
childName: ko.observable('').validateOther(),
errorList: ko.observableArray([])
};
var errors = ko.validation.group(self.validationData);
var showErrorMessages = function () {
errors.showAllMessages(true);
linqjs.from(errors()).distinct('$._latestValue').forEach(function(errorMessage) {
self.validationData.errorList.push({ text: errorMessage() });
});
};
问题是:有没有办法从其他地方填充errorList,以便我可以轻松地从每个单一视图模型中删除此属性,只使用继承的?
答案 0 :(得分:2)
您可以使用击倒extend feature。
var baseModel = function() {
var self = this;
self.errorList = ko.observable('This is an example');
}
var childModel = function() {
var self = this;
self.name = ko.observable('Test1');
self.childName = ko.observable('');
ko.utils.extend(self, new baseModel());
}
这是fiddle。