我有一个使用选择选项的表格。该组件用于添加作业,您可以选择一个包含客户端名称,地址,电话和传真的客户端(您可以从“客户端”页面添加这些内容),也可以手动将其添加到特定作业中。
当列表中有“客户端”时,您可以选择客户端,它将自动填写客户端电话,传真和地址,但是我不知道如何将整个客户端从NgFor传递回控制器。到目前为止,我试图将选项放入NgModel并在Select Change上找到与该ngModel值相等的数组中的正确客户端,但是我确定有更好的方法呢?
<select *ngIf="!manualClient" name="clientName" (change)="fillClientValues()" id="clientNameSelect" formControlName="clientName" class="form-control">
<option *ngFor="let client of allClients" [(ngModel)]="selectedClient" value="{{client.name}}">{{client.name}}</option>
</select>
如果我可以从ngFor传递客户端,那就容易多了。
答案 0 :(得分:0)
您有两个选择:
1。
<select *ngIf="!manualClient" name="clientName" (change)="fillClientValues();onClick($event)" id="clientNameSelect" formControlName="clientName" class="form-control">
<option *ngFor="let client of allClients; let i = index;" value="i">{{client.name}}</option>
</select>
2。
<select *ngIf="!manualClient" name="clientName" (change)="fillClientValues($event)" id="clientNameSelect" formControlName="clientName" class="form-control">
<option *ngFor="let client of allClients; let i = index;" value="i">{{client.name}}</option>
</select>
您可以从事件对象中提取索引。我建议第二种选择是更好的选择。以我的经验,从模板调用函数非常昂贵。
欢呼