小编Iva*_*val的帖子

在Google Maps事件监听器中打开Angular Material对话框为空

我在项目中使用Angular 6.0.6和Angular Material 6.3.0。我已将对话框组件添加到entryComponents应用程序模块中。如果直接在仪表板组件中打开该对话框,效果很好,但是在大多数情况下,当我在rightclickGoogle 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,效果很好。

乐于听到任何建议以使其在事件处理程序中正常运行。我尝试在事件处理程序中调用detectChangesChangeDetectorRef),但无济于事。

对话框的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)

javascript google-maps dialog angular-material angular

0
推荐指数
1
解决办法
493
查看次数