ノックアウトマッピングを使用してViewModelを生成したいと思います。
var viewModel = ko.mapping.fromJS(data);
ViewModelを作成した後、計算されたテキスト要素を追加したいと思います。
for (var i = 0; i < viewModel.Packages().length; i++) {
var pack = viewModel.Packages()[i];
pack.packageClass = ko.computed(function() {
return this.Height() * this.Depth() * this.Width()
}, pack);
}
ページをバインドします。
ko.applyBindings(viewModel);
この状態でページは正常に動作しています...
しかし今、ユーザーはページを「保存」して「再読み込み」したいと思っています。これは、ViewModelを新しいデータで更新するマッピング機能を使用して行われます。
data = ko.mapping.toJSON(viewModel);
ただし、ページを再バインドする前に、これらの計算フィールドを再度追加することはできません。そして、計算された要素が(もう)見つからないというエラーが発生します。
ko.mapping.fromJS(data, viewModel);
私は完全に間違ったことをしていますか?
計算フィールドがなくても、またはViewModelをリロードしなくても、すべてが正常に機能します。
更新:フィドルがソリューションのように機能するように更新されました。