我有一个包含MdDialog
组件的页面(比如父页面)。在对话框窗口中,我设置了md-button
。
这个md-button
可以在点击时触发父页按钮的功能吗?
答案 0 :(得分:1)
是的,您可以使用主题来触发事件。使用共享服务发出和订阅主题。
像这样定义shared.service
:
import {Injectable } from '@angular/core';
import { Subject } from 'rxjs';
@Injectable()
export class SharedService{
public triggerParentMethod: Subject<boolean> = new Subject<boolean>();
}
在ParentComponent
中,订阅构造函数中的triggerParentMethod
:
constructor(private sharedService:SharedService,public dialog: MdDialog){
this.sharedService.triggerParentMethod.subscribe( value =>{
if(value == true){
// Call some method here or some piece of code
console.log('called from dialog');
}
});
}
从对话框中发出triggerParentMethod
:
this.sharedService.triggerParentMethod.next(true);
完成working demo。