2017-09-04 134 views
0

我有一個頁面(說一個父頁面),其中包含MdDialog組件。在對話窗口內,我設置了一個md-button。 這個md-button可以在點擊時觸發父頁按鈕的功能嗎?觸發另一個按鈕單擊從MD角按鈕角材

+0

是的,它可以利用共享服務並觸發動作 –

+0

爲什麼不創建一個標準的控制器來處理頁面和對話框。 – Saubar

+0

你能舉個例子嗎?對不起,我是相當新的 – OreoFanatics

回答

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'); 
     } 
     }); 
    } 

的Emit triggerParentMethod從你的對話框:

this.sharedService.triggerParentMethod.next(true); 

完全working demo

+0

謝謝!但是,你能提供一個簡短的例子來實現CRUD方法(只有create函數),它從對話窗口內部的輸入觸發,然後顯示在父頁面上? – OreoFanatics

+0

我不明白你想問什麼 – Faisal

+0

我的意思是我在對話窗口中有一個'md-input'。現在我還想創建一個基於在'md-input'字段中輸入的值的CRUD方法。隨後添加的任何新對象都將顯示在父頁面上。 – OreoFanatics