javascript - 如何访问组件的 typeof 实例中的成员?
问题描述
我MatDialog
在我的应用程序中使用有角度的材料进行弹出窗口。在这里,我创建了一个父弹出组件,我在其中作为参数ParentComponent
传递并在父组件的构造函数中访问此子组件。ChildComponent
但是,此参数的类型是typeof
。我想访问成员,例如:使用此实例TestFunction
将子组件内部访问父组件。typeof
基本上,我有弹出窗口的关闭方法,应该调用TestFunction()
保存按钮子组件。
这是代码:
将子组件作为参数传递给父组件:
constructor(private _dialog: MatDialog){} let dialogRef = this._dialog.open(ParentComponent, { data: { component: ChildComponent } });
子组件:
TestFunction(){ console.log('test message')}
在父组件中访问:
constructor(public dialogRef: MatDialogRef<ParentComponent>, @Inject(MAT_DIALOG_DATA) public data: any) { } ngOnInit() { console.log('data in component: ',this.data.prototype); this.data.TestFunction(); }
在子组件的控制台中,我得到:
data in component:
{component: ƒ}
component: class ChildComponent
ctorParameters: () => {…}
arguments: (...)
caller: (...)
length: 3
但我想要TestFunction()。
解决方案
dialogRef: MatDialogRef<YourComponent>;
this.dialogRef = this.matDialog.open(YourComponent, {
disableClose: false
});
// Child Functionality
this.dialogRef.componentInstance.TestFunction()
推荐阅读
- javascript - 如何使用 JavaScript 创建这个 HTML 代码块
- javascript - 蒙版上带有圆形 div 的图表
- javascript - 防止 mouseup 事件多次触发
- c++ - 内联汇编或单独的汇编文件
- ruby-on-rails - 根据 Rails 中的子值存储对象列值
- typescript - 如何在 TypeScript 中内联导入另一个源
- sql - 按整数值分组的 SQL 查询
- php - 使用 Laravel 5 的“重定向返回”和 2 个或更多选项卡的奇怪行为,仅在服务器上
- django - open() "/root/project/static/*.css" 失败 (13: Permission denied) nginx
- sql-server - SQL Server 是否有办法根据登录名替换不同版本的表?