オブジェクト(アイテム)の値をコピーして別のオブジェクト(editedItem)にコピーし、元のオブジェクトが変更されていない状態でフォームに入れて変更したいと思います。バインドされていないオブジェクトの値をコピーする
<a (click)="editedItem=item">Edit</a>
このアプローチでは、2つのオブジェクトがバインドされ、editedItemが変更されたときにItemが変更されます。オブジェクトをバインドせずに値をコピーする方法はありますか?
オブジェクト(アイテム)の値をコピーして別のオブジェクト(editedItem)にコピーし、元のオブジェクトが変更されていない状態でフォームに入れて変更したいと思います。バインドされていないオブジェクトの値をコピーする
<a (click)="editedItem=item">Edit</a>
このアプローチでは、2つのオブジェクトがバインドされ、editedItemが変更されたときにItemが変更されます。オブジェクトをバインドせずに値をコピーする方法はありますか?
タイプを気にしない場合は、JSON.parse(JSON.stringify())を使用できます。ここで
は一例です。
HTML
<a (click)="copy()">Edit</a>
TS
copy() {
this.editedItem = JSON.parse(JSON.stringify(this.item))
}
まあ、余計な機能なしでこれを行っていると言っていますが、これは動作しますでしょう。
<a (click)="toEditItem(item)">Edit</a>
toEditItem(item) {
this.editItem= Object.create(item);
}
http://stackoverflow.com/questions/34201483/deep-clone-in-typescript-preserving-types –
これはtypescriptですものよりもAngular2-構文 - シングでなければなりません。 – Seltsam
いいえ、いけません。私は理由を見ないし、それはあまりにも複雑で誰もが違うものを求めている。 –