私はマッピングプラグインを初めて使用し、明らかな何かが欠けていると思います。
ko.mappingを取得して、監視可能な配列のメンバーを監視可能な配列として「深く」作成するにはどうすればよいですか?ドキュメントで「コールバックの作成」と「オプション」を見てきましたが、明らかなものは何もありません。
私はかなり大きなオブジェクトモデルを持っているので、viewModelを手動でバインドする必要はありません。また、副次的な問題として、オブザーバブルとして要素を動的に追加する必要もあります。
html
<p>
here, ko.mapping succesfully creates an observable...<br/>
<input data-bind="value:someText, valueUpdate:'afterkeydown'"></input>
</p>
<p>
however, here, the contents of the observable array are not observables...</br>
<span data-bind="foreach: { data: years, as: 'year' }">
<input data-bind="value:year, valueUpdate:'afterkeydown'"></input>
<br />
</span>
<button data-bind="click:function(){addYear();}">add</button>
</p>
<p><br /><br /><div data-bind="text: ko.toJSON($root)"></div></p>
</ p>
javascript
var model={
someText: 'Hello',
years:[2000,2001,2002]
};
var viewModel = ko.mapping.fromJS(model);
viewModel.addYear=function(){viewModel.years.push(ko.observable(""));}
ko.applyBindings(viewModel);
</ p>
これがjsFiddleリンクです
よろしくお願いします。
DS