[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 到剛剛裡面
這樣會不會太天馬行空了
有在猜說是不是要用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);
}
留言
張貼留言