angular - 在 Angular 材料中有条件地打开模态
问题描述
我正在使用 Angular Material Dialog 打开一个模态。在打开的模式中,我很少有组件,每次都应根据条件加载不同的组件。问题是,我试图将.open()
组件名称作为字符串传递给该方法,但它给出了错误。
例如,让我们说这个方法:
openDialog(): void {
const dialogRef = this.dialog.open(DialogOverviewExampleDialog, {
width: '250px',
});
我试图做类似的事情:
let myComp: string = 'DialogOverviewExampleDialog';
openDialog(): void {
const dialogRef = this.dialog.open(this.myComp, {
width: '250px',
});
但它给出了错误。它只是没有将变量作为函数的参数。
我需要将名称作为字符串传递的原因,因此我可以创建一个条件,为每个条件分配应该在模态中打开的组件,然后只需将.open()
带有要加载的期望组件名称的变量传递给方法
怎么了?
谢谢。
解决方案
DialogOverviewExampleDialog 是一个类。所以修改你的代码
let myComp: any = DialogOverviewExampleDialog;
openDialog(): void {
const dialogRef = this.dialog.open(this.myComp, {
width: '250px',
});
推荐阅读
- javascript - 使用 useReducer 刷新后保持页面的当前状态?- 反应
- python - 如何在 Kivymd 列表中激活列表
- python - 如何使用 cv2 去除数字周围的噪音
- kubernetes - 删除期间的 Helm 钩子
- tensorflow - 具有多个前向通道的渐变胶带
- android - 我正在使用带有 expo 的 react native 构建一个应用程序,其中我需要 android 上的图片库的权限
- python - python 表达式 normalize('NFKD', txt)
- javascript - 将 Tooltip div 放置在 span 上方的可变高度(React)
- css - 防止块元素的高度在没有绝对定位的情况下推动其他块元素?
- reactjs - Chart.js 3.5:当同一图表中有多个条形时,线性渐变不正确应用