koマッピングの小さな問題を解決しようとしています。シナリオは、私のViewModelが基本的にオブジェクトのコレクションであるというものです。各オブジェクトは、次のようにjson呼び出しから作成されます。
var ViewModel = ko.observableArray();
$.getJSON(url, function(data) {
ViewModel.push(ko.mapping.fromJSON(data));
});
これは完全に機能し、HTMLであらゆる種類の魔法を実行できます。問題は、たとえば、コレクションに何かを追加したい場合、たとえば、クライアント側の「追加と編集」シナリオをサポートする場合です。私は次のようなことをしたいと思います:
<input type="button" value="add new" data-bind="click: AddNew" />
そして、ViewModelのAddNew関数を次のようにしたいと思います。
function AddNew() {
this.push(// WHAT HERE?);
}
基本的に、既存の他のオブジェクトと同じオブジェクトをプッシュする必要がありますが、もちろん、すべてのプロパティが空白になっています...
リストからオブジェクトを「複製」し、すべてのオブザーバブルを空に設定する方法を考えていましたが、どこから始めればよいのかわかりません:/