#javascript #angular #html-table #angular-ngselect
#javascript #angular #html-таблица #angular-ngselect
Вопрос:
Я получаю данные из серверной части, и мне нужно отобразить их в таблице. Данные должны быть сгруппированы по некоторым атрибутам, вот код:
getRows(data: MyData[]): Array<Array<MyData>> {
const exceptionsArray: Array<Array<MyData>> = [];
const exceptions = new Map<string, Array<MyData>>();
data.forEach(exc => {
const key = exc.name != null ? exc.name '_' exc.id : exc.id;
const exceptionsArray = exceptions.has(key) ? exceptions.get(key) : new Array<MyData>();
exceptionsArray.push(exc);
exceptions.set(key, exceptionsArray);
}
);
exceptions.forEach((value: Array<MyData>) => {
exceptionsSet.push(value);
});
return exceptionsSet;
}
данные вставляются в таблицу:
<table width="100%">
<thead>..
<ng-container *ngFor="let row of getData(mpnIpn.data)">
<tr *ngFor="let record of row">
<td class="small text-muted noBg">amp;nbsp;</td>
<ng-container *ngIf="allowManipulate; else emptyCells">
<td class="noBg">
<a class="pointer text-nowrap" title="New comment"
(click)="newComment(record)">New comment</a>
<span *ngIf="row.length > 1">
/amp;nbsp;<a class="pointer text-nowrap" title="Modify records"
(click)="modifyRecords(record)">Modify records</a>
</span>
</td>
</ng-container>
<ng-container #emptyCells>
<td class="noBg">amp;nbsp;</td>
</ng-container>
</tr>
</ng-container>
</thead>
Когда я впервые захожу на страницу и нажимаю на ссылку, открывается модальное окно (по ссылке можно щелкнуть).
Но когда я перехожу на другую страницу, которая содержит ng-select, и я нажимаю на этот ng-select и возвращаюсь на страницу с таблицей, ссылки не доступны для просмотра. Мышь изменена, но модальные окна не открываются. Я пытался печатать на консоль при нажатии, но это тоже не работает.
Когда я нажимаю F5
(обновить страницу), все начинает работать. Я использую Angular 5.
Спасибо.
ОТРЕДАКТИРОВАНО
добавлен stackblitz
Когда я копирую этот код в angular версии 10, все работает хорошо
Комментарии:
1. Рабочий пример stackblitz было бы легко отлаживать
2. @MrKhan добавил stackblitz