我该怎么做才能确保以可观察的方式分配的对象不受更新角度的影响?

时间:2018-11-12 14:04:43

标签: angular rxjs observable angular6 reference-type

myObj : [] = [];
tmpObj: [] = [];

ngOnInit() {

    this.myService.getData().subscribe(
         data => {
          this.myObj = data.values;
          this.tmpObj = Object.assign([], this.myObj);
        }
    )

}

updateData(prop, val) {
    this.myObj[prop] = val;
}

当我调用 updateData 方法并更新 myObj 的属性时,此更改会影响 tmpObj 。但是我不希望tmObj对象受到这些更改的影响。我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果是数组,则可以执行以下操作:

  this.myService.getData().subscribe(
         data => {
          this.myObj = data.values;
          this.tmpObj = data.values.slice();
        }
    )

或者您可以这样做:

this.myService.getData().subscribe(
         data => {
          this.myObj = data.values;
          this.tmpObj = data.values.map(x => Object.assign({}, x))
        }
    )