从md-button Angular Material触发另一个按钮单击

时间:2017-09-04 08:11:45

标签: angular angular-material2

我有一个包含MdDialog组件的页面(比如父页面)。在对话框窗口中,我设置了md-button。 这个md-button可以在点击时触发父页按钮的功能吗?

1 个答案:

答案 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