Что мне нужно сделать, чтобы гарантировать, что объект, который я назначаю в наблюдаемом, не подвержен изменениям углов? - PullRequest
0 голосов
/ 12 ноября 2018
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 голосов
/ 12 ноября 2018

Если это массив, вы можете сделать:

  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))
        }
    )
...