[Angular Material] Dialog呼叫function帶入參數以識別是從哪邊開啟的dialog






就是做了點按鈕會呼叫aaa function跳出AAA Dialog的Component

AAA這個Dialog算是共用的內容
所以網頁上會有很多呼叫aaa()的按鈕

現在目標是
該如何識別是從網頁上的哪個按鈕所呼叫的aaa()

因為有需求將AAA dialog的內容帶回對應的按鈕附近的formcontrol欄位



有想過讓aaa()帶一個是別的參數 舉例叫做aaa001 預計會來要寫入English001的formgroupname欄位中 於是變成aaa(aaa001) 帶回來後再切割aaa001這字串取出001 再湊出English001這串字當變數 再set Dialog的 value 到剛剛裡面

這樣會不會太天馬行空了 :rofl:


有在猜說是不是要用afterOpened
或是getId 的方法
但是不太知道怎樣寫


-----------------------------------------------------


解法

的確是想太多了 哈哈
直接在this.dialogRef.close()
裡面塞值就好

解決方式

頁面html

 (click)="aaa('aaa001')"

頁面ts

aaa(DialogCorrespondId) {
    let CodeResult: string;
    const dialogRef = this.dialog.open(AAADialogComponent, {
      width: '80%',
      disableClose: true,
      data: {
        CodeBtnId: DialogCorrespondId,
       CodeDialogResult: CodeResult,
      },
    });

    dialogRef.afterClosed().subscribe(result => {    if(result!==(''||undefined)){
      this.formDataService.serviceFormGroup
        .get(DialogCorrespondId)
        .setValue(result);      }
    });
  }

Dialog html

 <button (click)="setCodeResultToForm()">
      將結果填入欄位
    </button>

Dialog ts

  setCodeResultToForm() {
    this.dialogRef.close(this.findCodeForm.controls['CodeResult'].value);
  }

























留言

這個網誌中的熱門文章

[Angular] 閒置登出作法

[Angular Materail] 檔案上傳範例

[Angular Material] 搜尋式下拉選單範例