Угловой материал 6 стол - PullRequest
0 голосов
/ 28 июня 2018

Я использую компонент таблицы Angular. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что после добавления или удаления строк я хочу автоматически обновлять содержимое таблицы. Я хочу установить флаг в таблице. Если данные удалены или добавлены, Позволяет таблице узнать, что она отправляет запрос на сервер каждый раз, когда обнаруживает изменение. Если посмотреть на API материалов, то есть свойство viewChange , которое можно применить к проблеме, с которой я сейчас сталкиваюсь?

1 Ответ

0 голосов
/ 28 июня 2018

У меня есть это в моем Stackblitz . Это проще, чем ваш подход.

Для удаления:

// Remove the deleted row from the data table. Need to remove from the downloaded data first.
  private deleteRowDataTable (recordId, idColumn, paginator, dataSource) {
    this.dsData = dataSource.data;
    const itemIndex = this.dsData.findIndex(obj => obj[idColumn] === recordId);
    dataSource.data.splice(itemIndex, 1);
    dataSource.paginator = paginator;
  }

Для обновления:

// ---- UPDATE ----  Called from edit-member.component.html

  private update() {
    if (this.addEditForm.addEditMemberForm.valid) {
      this.formValue = this.addEditForm.addEditMemberForm.value;
      this.httpService.updateRecord(this.membersUrl, this.formValue)
      .subscribe(
        result => {
          // Update the table data view for the changes.
          this.updateDatatableService.updateDataTable(
            result, this.recordId, this.idColumn, this.paginator, this.dataSource, this.formValue);
          this.success();
        },
        (err: HttpErrorResponse) => {
          console.log(err.error);
          console.log(err.message);
          this.handleError(err);
        }
      );
    }
  }

У меня нет этого для добавления, но вы поняли идею и можете добавлять строки таким же образом.

Надеюсь, это поможет.

...