gpt4 book ai didi

angular - 作为组件的输入变量的类型应该是什么 - Angular

转载 作者:行者123 更新时间:2023-12-04 12:01:57 24 4
gpt4 key购买 nike

我正在尝试创建一个可重用的模块。在那个模块中,我想使用 MatDialog 打开不同的组件。 .让我们调用组件 StartActionComponent .通常,我可以使用:

export class StartActionComponent{

async startbuttonClicked(e: SomeEvent){
const dialogRef = this.dialog.open( SomeModalComponent , {data: e});
}
}
这工作正常,但我想动态注入(inject)一个组件,比如说 SomeModalComponent2 .我正在努力实现以下目标:
仪表板模块
export const START_COMPONENT = new InjectionToken<any>('START_COM');

export class DashboardModule {

static forRoot(conf: {
onStart: any
}):ModuleWithProviders<DashboardModule>{
return {
ngModule: DashboardModule,
providers: [
{
provide: START_COMPONENT, useValue: conf.onStart
}
]
}
}
}
StartActionComponent成分。
StartActionComponent
  constructor(
@Inject(STOP_COMPONENT) startComponent: any) {}

async startbuttonClicked(e: SomeEvent){
const dialogRef = this.dialog.open( this.startComponent , {data: e});
}
和在 app.module.ts 应用模块
import { SomeModalComponent2 } from 'some.modal2.component`;

@NgModule({
import: [DashboardModule.forRoot(onStart: SomeModalComponent2)]
})

我要删除 any并有一个类型:
static forRoot(conf: {onStart: any})
或者
@Inject(STOP_COMPONENT) startComponent: any) {}
我试过 ComponentType 但没有运气

最佳答案

我想我遇到了一个类似的案例,而我想要输入我的动态组件。所以我创建了一个名为 MyDynamicComponent.ts 的新文件,它看起来像这样:


export type MyDynamicComponent = GridComponent | GridControlComponent | FeatureComponent | FeatureControlComponent;

在你的情况下,我相信它会是这样的:

export type StartComponentType = SomeModalComponent | SomeModalComponent2;

我希望我正确理解了你的问题,

关于angular - 作为组件的输入变量的类型应该是什么 - Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68193695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com