如何将“角度材质”对话框隐藏到普通组件?

时间:2020-06-24 04:05:35

标签: angular angular-material angular-router

我有一个用于调用者的Angular Material Dialog.Code代码片段: 在模板中:

<ag-grid-angular 
              ...
              (cellClicked)='onGridCellClicked($event)'>
</ag-grid-angular>

在组件中:

onGridCellClicked(event) {
   if (event.colDef.field == 'name') {
      this.showSurveyDetails(event.data);
    }
  }
  showSurveyDetails(data) {
    const dialogData = data;       
    this.dialog.open(SurveyDetailsDialogComponent, { width: '80vw', data: dialogData });
  }

此处的对话框是MatDialog。现在将其变成常规组件,我将代码this.dialog.open替换为

this.router.navigate(['getSurveySummary',{dialogData:dialogData}]);    

其中路由器是ActivatedRoute。现在的问题是找不到路线。 路由在app.routing.ts中定义为:

{ path: SurveyRoutes.SURVEY_SUMMARY, component: SurveyDetailsDialogComponent, canActivate: [ValidateLogin] }

SURVEY_SUMMARY在app.routing.constants.ts中定义为:

SURVEY_SUMMARY = 'getSurveySummary'

错误消息是:

ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'getSurveySummary;dialogData=%5Bobject%20Object%5D'

错误:无法匹配任何路由。 URL段:'getSurveySummary; dialogData =%5Bobject%20Object%5D' 在ApplyRedirects.push ../ node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError(vendor.js:132813)

如果在对话框中失败,那将是另一回事,但是在路由自身时却失败了。如何定义路线以使流程成功?

0 个答案:

没有答案