我有一个包含许多问题的表格。每个问题都有多个答案。在表单级别,我想创建一些计算的可观察数据,例如总分和问题数量。formmodel、questionsmodel 和 answermodel 的创建方式相同。问题模型“知道”答案。它让我可以创建计算出的可观察量,例如答案数量或最大点数。
我的问题是无法识别问题数组的表单模型。我可以计算每个问题的答案数量,但不能计算表格中的问题数量。我的模型有问题还是我应该调查我的数据?
function formViewModel(data) {
var self = this;
var mapping = {
'questions': {
create: function (options) {
return new questionsViewModel(options.data);
}
}
};
var model = ko.mapping.fromJSON(data, mapping, self);
model.numberOfQuestions = ko.computed(function () {
return self.questions().length; // error: self.questions() is not a function
});
return model;
}
function questionsViewModel(data) {
var self = this;
var mapping = {
'answers': {
create: function (options) {
return new answersViewModel(options.data);
}
}
};
var model = ko.mapping.fromJS(data, mapping, self);
model.numberOfAnswers = ko.computed(function () {
return self.answers().length; // no problem
});
return model;
}
function answersViewModel(data) {
var self = this;
var mapping = {};
var model = ko.mapping.fromJS(data, mapping, self);
return model;
}