我在Angular 2中有一个Class,我需要两个具有相同json值的变量,但我需要更改一个,我需要保留另一个作为第一个的备份,如下所示:
export class Table {
var1: any;
var2: any;
}
然后,请求API:
ajax_request().then(data => {
this.var1 = data;
this.var2 = data;
});
如果我在this.var2中进行更改,this.var1也会更改。
为避免这种情况,我正在制作:
this.var1 = data;
this.var2 = JSON.stringify(this.var1);
this.var2 = JSON.parse(this.var2);
但我知道它不是性能友好的。 有什么方法可以做到这一点?
答案 0 :(得分:1)
这与Angular2数据绑定无关,这正是JavaScript的工作方式。
您需要创建对象的副本,以便不会对一个引用进行更改,从而影响对同一对象的另一个引用 - 就像您在当前的解决方法中所做的那样。
答案 1 :(得分:0)
this.var1 = Object.assign({}, data);