Angular 我需要做什么来确保我在observable中指定的对象不受角度更新的影响?

Angular 我需要做什么来确保我在observable中指定的对象不受角度更新的影响?,angular,rxjs,observable,angular6,reference-type,Angular,Rxjs,Observable,Angular6,Reference Type,当我调用updateData方法并更新myObj的属性时,这个更改会影响tmpObj。但是我不希望tmObj对象受到这些更改的影响。我应该为此做些什么?如果是一个数组,您可以执行以下操作: myObj : [] = []; tmpObj: [] = []; ngOnInit() { this.myService.getData().subscribe( data => { this.myObj = data.values;

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

如果是一个数组,您可以执行以下操作:

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;
}
  this.myService.getData().subscribe(
         data => {
          this.myObj = data.values;
          this.tmpObj = data.values.slice();
        }
    )
或者你可以:

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;
}
  this.myService.getData().subscribe(
         data => {
          this.myObj = data.values;
          this.tmpObj = data.values.slice();
        }
    )

您需要制作对象数组的深度副本