就是做了點按鈕會呼叫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 的方法
但是不太知道怎樣寫
再請各位前輩分享比較不必這樣走冤枉路的正確寫法
你都呼叫 function 了,就將物件識別或是變數傳進去就可以了。沒那麼複雜
1個讚
的確是想太多了 哈哈
直接在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 => {
this.formDataService.serviceFormGroup
.get(DialogCorrespondId)
.setValue(result);
});
}
Dialog html
<button (click)="setCodeResultToForm()">
將結果填入欄位
</button>
Dialog ts
setCodeResultToForm() {
this.dialogRef.close(this.findCodeForm.controls['CodeResult'].value);
}