Задать вопрос
StivinKing
@StivinKing

Как правильно скармливать контент через *ngFor в DataTables?

Доброго времени суток,

Кто пользовался DataTables совместно с angular2?
Проблема заключается в следующем:
Есть компонент самой таблицы: sa-datatable, передаю в неё необходимые опции: [options]="optionsTable". Это все OK. все работает.
Далее в теле таблицы вывожу через *ngFor нужную информацию в таблицу. Здесь всё хорошо до того момента, пока не перейду на другую страницу, а потом заново не вернусь на эту. Тогда будет так же выведен контент (через *ngFor), но сама таблица будет считать, что в ней ничего нету (кол-во 0 из 0), и при попытке отсортировать, пропадет контент.

Пример кода (не настоящий)
***.component.html
<sa-datatable [options]="optionsTable"
              tableClass="display projects-table table table-striped table-bordered table-hover"
              width="100%">
    <thead>
    <tr>
        <th>columns 1</th>
        <th>columns 2</th>
        <th>columns 3</th>
        <th>columns 4</th>
        <th>columns 5</th>
    </tr>
    </thead>
    <tr *ngFor="let line of lines">
        <td>{{line.row_1}}</td>
        <td>{{line.row_2}}</td>
        <td>{{line.row_3}}</td>
        <td>{{line.row_4}}</td>
        <td>{{line.row_5}}</td>
    </tr>
</sa-datatable>


***.component.ts
public lines: any;
    public optionsTable = {
        "colReorder": true,
        "paging": false,
        "filter": false,
        "order": [[0, 'desc']],
    };

    ngOnInit() {
        this.getLines();
    }

    private getLines() {
        this.linesService.getLines()
            .subscribe(
                data => {
                    this.lines = data.lines;
                }
            )
    }
  • Вопрос задан
  • 259 просмотров
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
vitali1995
@vitali1995
Уже не первый раз встречаю вопрос о том, что данные из массива пропадают после сортировки. Большая вероятность, что вы после сортировки присваиваете отсортированный массив на то место, где был прежний. Поскольку ngFor связан со старым массивом, логично что после сборщика мусора он ничего не находит. Нужно работать с одним объектом и не перетирать указатели.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 дек. 2024, в 09:41
5000 руб./за проект
23 дек. 2024, в 09:39
1000000 руб./за проект
23 дек. 2024, в 09:33
3000 руб./за проект