この単純なテストが実行時エラーをスローする理由を理解するのに本当に問題があります。
FilterClause オブジェクトの一部として、計算されたノックアウト プロパティ 'Level' を取得しました。ドキュメンテーションを忠実に実行しましたが、まだランタイム エラーがスローされます...
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);
}