【问题标题】:Trigger another button click from md-button Angular Material从 md-button Angular Material 触发另一个按钮单击
【发布时间】:2018-02-12 10:37:26
【问题描述】:

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

【问题讨论】:

  • 是的,它可以利用共享服务并触发操作
  • 为什么不创建一个处理页面和对话框的标准控制器。
  • 你能举个例子吗?抱歉,我对此很陌生

标签: angular angular-material angular-material2


【解决方案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

【讨论】:

  • 谢谢!但是,您能否提供一个简短的示例来实现从对话框窗口内的输入触发然后显示在父页面上的 CRUD 方法(仅创建函数)?
  • 我不明白你想问什么
  • 我的意思是我在对话窗口中有一个md-input。现在我还想根据在 md-input 字段中输入的值创建一个 CRUD 方法。然后添加的任何新对象都将显示在父页面上。
  • 这完全是一个不同的问题!您的原始问题已得到解答,该问题与从对话框中调用父函数有关。请投票并标记为已接受,然后为您的第二个问题打开一个新问题。
猜你喜欢
  • 1970-01-01
  • 2011-04-03
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 2014-04-24
  • 2021-12-21
  • 2020-08-01
  • 2018-12-04
相关资源
最近更新 更多