我在理解为什么这个简单的测试会引发运行时错误时遇到了真正的问题。
我有一个淘汰赛计算属性'Level'作为我的FilterClause对象的一部分,我已经按照文档进行操作,但它仍然会引发运行时错误......
JavaScript runtime error: Object doesn't support property or method 'Level'
我认为这与在声明计算属性函数的构造时未实例化的对象有关。但它遵循,或者至少似乎遵循淘汰赛文件。
使困惑!!
这是我的代码:
var FilterClause = function (json, parent) {
this.FilterClauseID = ko.observable();
this.Type = ko.observable();
this.Left = ko.observable();
this.Right = ko.observable();
this.ParentID = ko.observable();
this.Parent = ko.observable(parent);
this.Children = ko.observableArray();
this.Level = ko.observable(0);
// computed
this.Padding = ko.computed(function () {
return this.Level().ToString() + "px";
});
var mapping = {
'Children': {
create: function (args) {
return new FilterClause(args.data, this);
}
},
'ignore': ["Parent"]
};
ko.mapping.fromJS(json, mapping, this);
}