I have a webpage containing a form where for each question, the user enters a numerical response and some additional comments. The comments are currently inputted in an input type="text", but to allow for more space, I want to open a dialog with a larger textarea when the input box is clicked. I would like to create one dialog popup box containing the textarea, which is bound using ngModel to a variable depending on which comment input box is clicked. A JS implementation would also work though. This is what I have so far: form-page.component.html <br><br> <p-card class="p-fluid"> <ng-template pTemplate="title"> <span style="color:#00a499;">Maximum Demand (MVA)</span> </ng-template> <ng-template pTemplate="content"> <div class="formgrid grid"> <div class="field col"> <label for="remarks_max_demand">Remarks</label> <input #remarks_max_demand="ngModel" type="text" pInputText id="remarks_max_demand" [(ngModel)]="currentRemark" (click)="openRemarksDialog();setRemark(data.generalData.max_demand.remarks_max_demand)" /> </div> </div> </ng-template> </p-card> <br><br> <p-card class="p-fluid"> <ng-template pTemplate="title"> <span style="color:#00a499;">Total Installed Capacity (MVA)</span> </ng-template> <ng-template pTemplate="content"> <div class="formgrid grid"> <div class="col-12"> <h4 style="text-align: left;">Grid</h4> </div> <div class="field col"> <label for="remarks_TIC_grid">Remarks</label> <input type="text" pInputText id="remarks_TIC_grid" [(ngModel)]="data.generalData.total_installed_capacity.remarks_TIC_grid" (click)="openRemarksDialog();setRemark(data.generalData.total_installed_capacity.remarks_TIC_grid)"/> </div> </div> <p-dialog [(visible)]="visible" [style]="{ width: '600px' }" header="Remarks" [modal]="true" styleClass="p-fluid"> <ng-template pTemplate="content"> <div class="field"> <label for="remarks_input">Please type any remarks.</label> <textarea id="remarks_input" rows="10" cols="30" pInputTextarea [(ngModel)]="currentRemark" > </textarea> </div> </ng-template> <ng-template pTemplate="footer"> <p-button label="Continue" icon="pi pi-arrow-right" [text]="true" (onClick)="hideRemarksDialog()" /> </ng-template> </p-dialog> form-page.component.ts import { Component, OnInit } from '@angular/core'; import { Router, RouterOutlet } from '@angular/router'; import { FormBuilder, Validators } from '@angular/forms'; import { Subscription } from 'rxjs'; import { MessageService } from 'primeng/api'; import { EvaluationService } from './service/data'; import { Dropdown } from 'src/app/models/dropdown.model'; import { DropdownService } from 'src/app/services/dropdown.service'; import { FilterInput, PagedResultDto } from 'src/app/models/custom.model'; import { DefinitionLibrary } from 'src/app/models/definition-library.model'; import { DefinitionLibraryService } from 'src/app/services/definition-library.service'; import { TableLazyLoadEvent } from 'primeng/table'; @Component({ selector: 'app-form-page', templateUrl: './form-page.component.html', styleUrl: './form-page.component.scss' }) export class FormPageComponent implements OnInit { data: any; currentRemark!: any constructor(public messageService: MessageService, public evaluationService: EvaluationService, private dropdownService: DropdownService, private definitionLibraryService: DefinitionLibraryService, private router: Router) { }; openRemarksDialog() { this.visible = true; } setRemark(data?: any){ this.currentRemark = data; } getRemark(){ return this.currentRemark; } hideRemarksDialog() { this.visible = false; } ngOnInit(): void { this.getOpuDropdown(); this.data = this.evaluationService.getEvaluationData() } } The above works for the first remarks box (remarks_max_demand), but not for the others. How can I get it to work for multiple boxes/variables? Thank you! Continue reading...