TS2339: свойство 'sort' не существует для типа 'BehaviorSubject - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу создать динамическую таблицу c, используя материал angular, где я могу динамически добавлять / удалять данные. Будучи очень новым для Angular, я сослался на создание стекаблита для создания таблицы.

https://stackblitz.com/edit/angular-material-editable-table-fazhbc

Пока все мои изменения работают - я не могу Сортировка данных в

 ngAfterViewInit() {
    this.dataSource.sort = this.matSort;
  }

Ошибка, которую я получаю TS2339: Свойство sort не существует для типа 'BehaviorSubject<AbstractControl[]

, если сортировка не поддерживается, как в источнике данных таблицы материалов или я что-то упустил?

Ответы [ 3 ]

0 голосов
/ 19 февраля 2020

Поскольку BehaviorSubject возвращает наблюдаемый результат, следовательно, сначала подпишите эти данные, затем примените функцию сортировки

0 голосов
/ 19 февраля 2020

Вы можете думать об этом как о репортере новостей, говорящем по телевизору и сообщающем последние обновления всем последним данным, аналогичным поведению субъекта.

Добавьте один сервис как myService и добавьте следующий код: publi c myData: BehaviorSubject = new BehaviorSubject ([]); updateData (data): void {this.myData.next (data); }

затем вызовите updateData, откуда вы хотите отправить данные другим. this.myService.updateData ( "Тест"); Здесь вы можете передать любой тип данных, например, object, array et c. Затем на другом компоненте, где вы хотите эти данные, напишите следующий код this.myService.myData.subscribe ((data) => {console.log (data);}); Вы получите данные. Вы можете написать выше в любом компоненте, где вы хотите данные.

0 голосов
/ 19 февраля 2020

Вам необходимо получить текущее значение из BehaviorSubject с помощью value или getValue() и отсортировать его следующим образом: this.dataSource.value.sort(this.matSort).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...