Привет и добрый день,
Создатель ng2-smart-table проинформировал меня о необходимости открыть здесь сообщение вместо отправки по электронной почте, чтобы другие программисты тоже могли получить пользу от этого вопроса. Я пытаюсь обновить таблицу данных при изменении массива, используемого для ее привязки. За ним стоит фильтр, который работает непосредственно с массивом, удаляя элементы или добавляя элементы. Вот простой пример того, как это работает сейчас:
let arr = [];
//fill arr with data
let arrayData = arr;
Как это работает, так как в html у меня есть [data] = 'arrayData'
Проблема в том, что это оказывается медленным фильтром, и я всегда создаю таблицу со всеми ее элементами. Я изменил метод фильтра, чтобы просто добавить или удалить необходимые элементы из массива, используя splice для удаления и push для добавления, поэтому я не буду каждый раз воссоздавать массив со всеми необходимыми элементами. Массив действительно меняется, и он работает, как задумано, но проблема в том, что измененный массив не влияет на данные, он продолжает показывать свое старое состояние, как если бы массив не был изменен. Я столкнулся с некоторыми решениями на форуме git hub datatable, но ни одно из них не работает в моем случае. Я считаю, что у меня есть некоторая разница в этом проекте. У меня есть компонент, который использует базу данных в качестве общей таблицы, используемой на некоторых страницах. Применяемый мной фильтр относится к определенной странице. На этой странице в моем HTML-коде есть что-то вроде этого:
<app-datatable id="tableSpecific" class="last-fixed" [(columns)]="columns" [data]="arrayData"[paging]='false' (emmitClick)="apply($event.data)"></app-datatable>
Компонент app-datatable имеет следующий HMLT:
<ng2-smart-table [settings]="config" [source]="data" (userRowSelect)="clickEmmiter($event)"></ng2-smart-table>
Итак, реализация моего фильтра, изменяющего массив, находится на другой странице. Единственное, что объединяет этих двоих, - это
[data]= array
Что я могу сделать, чтобы принудительно обновить или что-то в таблице данных?