Присвоение одних и тех же данных двум различным переменным обновлениям обеих переменных + Angular 6 - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу выполнить поиск данных на стороне клиента, для этого мне нужно установить ответ API в двух разных переменных

код, как показано ниже.

public masterData:any = [];
public searchData:any = [];
this.httpClient.post("url", {id:'1'}).subscribe((res:any)=>{
  if(res.success){
    this.masterData = res.data;
    this.searchData = res.data;
  }
})

когда я ищу и задаю переменную searchData, в этом случае она также обновляет masterData , а также

так что я не хочу обновлять это ..

Я всегда хочу выполнить поиск по masterData и установить в searchData

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Вы можете использовать lodash, потому что он делает глубокий клон объекта. И это более совершенный способ клонирования объекта. Оператор спреда и Object.assign этого не делает.

Функция _.cloneDeep(obj2)

Вот пример:

var obj1 = _.cloneDeep(obj2);

Тем не менее, если вы хотите использовать Spread operator или Object.assign, то вот пример.

var obj1 = [ ...obj2 ];
var obj1 = Object.assign(obj2);
0 голосов
/ 05 ноября 2018

Используйте оператор распространения:

this.masterData = [ ...res.data ];
this.searchData = [ ...res.data ];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...