我在项目中使用Angular 6.0.6和Angular Material 6.3.0。我已将对话框组件添加到entryComponents
应用程序模块中。如果直接在仪表板组件中打开该对话框,效果很好,但是在大多数情况下,当我在rightclick
Google Maps标记的事件处理程序中打开该对话框时,该对话框为空。
在这种情况下,它为空:
private attachEvents(wo) {
wo.marker.addListener('rightclick', (e) => {
this.dialog.open(DialogAlert, {
width: '400px',
data: {
confirmation: true,
message: 'test',
title: 'X'
}
});
});
}
Run Code Online (Sandbox Code Playgroud)
如果我将open
代码放在外面wo.marker.addListener
,效果很好。
乐于听到任何建议以使其在事件处理程序中正常运行。我尝试在事件处理程序中调用detectChanges
(ChangeDetectorRef
),但无济于事。
对话框的HTML代码:
<h1 mat-dialog-title>{{data.title ? data.title : defaultTitle}}</h1>
<div mat-dialog-content>
<p>{{ data.message }}</p>
</div>
<div mat-dialog-actions>
<button *ngIf="confirmation" mat-raised-button (click)="onNoClick()">Cancel</button>
<button *ngIf="confirmation && !options" mat-raised-button (click)="onConfirmClick()" cdkFocusInitial>Yes</button>
<button color="primary" *ngFor="let o of options; index as i" mat-raised-button (click)="onConfirmClick(i)">{{o}}</button> …
Run Code Online (Sandbox Code Playgroud)