避免Angular 2中变量之间的数据绑定

时间:2016-11-07 10:27:09

标签: angular data-binding

我在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);

但我知道它不是性能友好的。 有什么方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

这与Angular2数据绑定无关,这正是JavaScript的工作方式。

您需要创建对象的副本,以便不会对一个引用进行更改,从而影响对同一对象的另一个引用 - 就像您在当前的解决方法中所做的那样。

另见https://stackoverflow.com/a/5344074/217408

答案 1 :(得分:0)

this.var1  = Object.assign({}, data);