В моем проекте я использую компонент диалога ngx-bootstrap , который берет ваш ng-template
и отображает его как ваш модал.
Использование ng-template
выгодно по многим причинам и, что более важно, нет коммуникационного барьера (между модальным и исходным компонентом), если ng-template
живет в одном и том же компоненте.Таким образом, я могу без проблем вызывать свой компонентный метод.Например, в следующем коде selectNextRow()
изменит строку в моей таблице и, следовательно, selectedRow_Session
, и, таким образом, данные следующей строки будут отображаться в модальном режиме.
app.component.ts
/** display selectedRow_Session on modal */
<ng-template #sessionDetailTemplate>
<app-session-detail-model
[session]="selectedRow_Session"
[bot]="bot"
(selectNextRow)="selectNextRow()"
(closeModel$)="modalRef.hide()"
(selectPrevRow)="selectPrevRow()"
[pageNumberOfCurrentRowSelected]="pageNumberOfCurrentRowSelected"
[indexOfCurrentRowSelected]="indexOfCurrentRowSelected"
[finalDfState]="selectedRow_Session.df_state"
[sessionDataStore]="selectedRow_Session.data_store">
</app-session-detail-model>
</ng-template>
В диалогах Angular Material я мог найти только API, который может создавать модалы только с Component
, а не с ng-template
.
Есть ли способ сделать это, с диалогами или без них, используя угловой материал?