Angular/Angular Material-如何使用内部MatDialog.open(组件)投影内容



例如,如果我有组件:

@Component(
selector: "demo-comp",
template: `
<div>
Some text...
<ng-content></ng-content>
</div>
`
)
export class DemoComponent {
constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data)
// ...
}

在打开对话框时,是否有适当的方法来投影内容?我只知道用这种方式打开对话框。。。这不允许我将内容传递到插槽。

// Inside another component
constructor(dialog: MatDialog) {}
open = () => {
this.dialog.open(DemoComponent, {/** someConfig */ })
}

注意:我接受门户网站等的回答。

在动态组件内部没有对话框API方式来投影内容。然而,您可以创建包装器组件,它将呈现原始组件,其中包含一些投影在中的内容

@Component({
...,
template: `<demo-component [data]="data"><div>project something</div>`
})
exprt class DemoProjectionDialogComponent {
...
}
...
this.dialog.open(DemoProjectionDialogComponent, {...})

最新更新