Угловой Удаление столбца из списка - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь удалить столбец из списка, и перед удалением я сохраняю список, назначенный другому списку для резервного копирования.Но после удаления colmun из списка этот столбец в списке резервных копий также удаляется.

 this.commonService
  .fetchContractByDate(this.authService.loggedUser.companyId, this.startDate, this.endDate)
  .subscribe((response: any) => {
    const clientName = this.clients;

    this.contractListbyClient = response.data;
    this.allList = response.data;
    this.forexport(clientName, contractList);

    for (const contract of this.contractListbyClient) {
      for (const selected of this.selection.selected) {
        if (selected.name === 'startDate' || selected.name === 'endDate') {
          contract[selected.display] = this.commonService.getFormattedDate(contract[selected.name]);
        } else {
          contract[selected.display] = contract[selected.name];
        }
      }

      for (const item of this.columns) {
        delete contract[item.name];
      }
    }

В приведенном выше коде выбранные столбцы из this.contractListbyClient удаляются, нотакие же изменения отражаются и в this.allList .Может ли кто-нибудь сказать мне, как я могу сохранить копию списка без изменений

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Попробуйте это:

this.contractListbyClient = Object.assign({}, response.data); this.allList = Object.assign({}, response.data);

0 голосов
/ 23 мая 2019

Это потому, что для объектов значение переменной является ссылкой.Из-за этого, когда вы передаете объект и изменяете его члены, эти изменения сохраняются вне функции.Это выглядит как передача по ссылке.

Чтобы решить эту проблему, мы должны правильно клонировать этот объект, один простой способ сделать это ниже:

 this.contractListbyClient = response.data;
 this.allList = JSON.parse(JSON.stringify(response.data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...