角度2を使用してオブジェクトを別のオブジェクトにコピーするにはどうすればよいですか?angular2:オブジェクトを別のオブジェクトにコピーする方法
私はangular.copy()を使用してオブジェクトを古いオブジェクトの緩い参照にコピーしました。
Error: angular is not defined.
角度2を使用してオブジェクトを別のオブジェクトにコピーするにはどうすればよいですか?angular2:オブジェクトを別のオブジェクトにコピーする方法
私はangular.copy()を使用してオブジェクトを古いオブジェクトの緩い参照にコピーしました。
Error: angular is not defined.
ソリューション
Angular2は活字体とES6のような近代的な技術の地面に開発された:しかし、ときに私は、エラーの下に取得した角度2で同じ使用しました。したがって、あなたはただlet copy = Object.assign({}, myObject)
を行うことができます。
- いい例。ネストされたオブジェクトのための let copy = JSON.parse(JSON.stringify(myObject))
let copy = Object.assign({}, myObject). as mentioned above
が、この文句を言わない仕事:ネストされたオブジェクトについては
。 SO代替は、我々は深いコピーオブジェクトのために、サードパーティのライブラリを使用することができますネストされたオブジェクトのための
let copy =JSON.parse(JSON.stringify(myObject))
stringifyは私の入れ子の必要性のために働いた。ありがとう。 – Brent
let course = {
name: 'Angular',
};
let newCourse= Object.assign({}, course);
newCourse.name= 'React';
console.log(course.name); // writes Angular
console.log(newCourse.name); // writes React
だろう。 lodashの場合 、前に示唆したように、深いコピーオブジェクトが内部のネストされたオブジェクトを有するクリーンな方法はlodashのcloneDeep法を使用することによるものである_.cloneDeep()
let newCourse= _.cloneDeep(course);
を使用します。
角度のために、あなたはこのようにそれを行うことができます。
がyarn add lodash
またはnpm install lodash
でlodashをインストールします。あなたのコンポーネントで
は、cloneDeep
をインポートし、それを使用します。
import * as cloneDeep from 'lodash/cloneDeep';
...
clonedObject = cloneDeep(originalObject);
それが唯一の18キロバイトの利益のためにも価値が、ビルドに追加されます。
lodashのcloneDeepを使用する理由についてさらに詳しい情報が必要な場合は、article hereも書いています。
[角度2でangular.copyを使用するにはどうすればいいですか](https://stackoverflow.com/questions/34688517/how-can-i-use-angular-copy-in-angular-2) – sisve