Я использую Angular 5.2.10 (также проверено в 5.0.2) + Bootstrap 4.1.1 (также проверено в 4.0.0) + ng-bootstrap 1.1.2 и пытаюсь заставить tab-set работать с динамически создаваемыми вкладками.
Я привязываю ngb-tab к массиву через *ngFor:
<ngb-tabset>
<ngb-tab
id = "tab.id"
*ngFor = "let tab of tabs">
<ng-template ngbTabTitle>
<span>{{ tab.title }}</span>
<span
class = "close"
(click) = "onClosiClick(tab)">
×
</span>
</ng-template>
<ng-template ngbTabContent>Content of {{ tab.title }}</ng-template>
</ngb-tab>
</ngb-tabset>
Но у этого довольно простого шаблона есть 3 проблемы:
Вот Stackblitz. Кроме того, я создал проблема на Github.
Я что-то делаю не так или этой функции еще не хватает в ng-bootstrap?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Идентификатор устанавливается в строку "tab.id". Вместо этого я думаю, что это должен быть [attr.id] = "tab.id", который установит для атрибута id значение, содержащееся в tab.id.
Похоже, что в репозитории ng-bootstrap есть открытая проблема, в которой есть временное решение для перезагрузки приложения. https://github.com/ng-bootstrap/ng-bootstrap/issues/1909
https://stackblitz.com/edit/ng-bootstrap-tab-set-issues-fj8koq?file=app/app.component.ts
Извини, должно быть, я это пропустил. Я обновил ответ информацией о том, как предотвратить перезагрузки
Отлично, спасибо за исправления и за указание на существующую проблему!
Вы правы, спасибо! Это устраняет проблемы №1 и №2. Однако при нажатии кнопки «Закрыть» (x) приложение перезагружается. Вы знаете, почему это так?