gpt4 book ai didi

html - Angular 2 : Input Controls losses value inside form tag with ngFor

转载 作者:太空狗 更新时间:2023-10-29 17:57:29 25 4
gpt4 key购买 nike

我在 Angular2 中开发了一个使用 form 标签的页面,并且我在 table 标签中使用 ngFor 渲染了输入控件。

我已经创建了模型 (DataModal) 来表示表格的每一行。我已经创建了模型列表 (DataModalList) 并通过单击按钮 (addNewRow) 不断将每个模型添加到其中

我遇到了在添加新行时所选输入值被删除的问题。当我删除表单标签时一切正常我需要表单标签来执行验证。

请找到下面的代码:

型号:

import {DropDownModel} from '../models/dropDownModel'; 
export class DataModal {
dropdown: DropDownModel[];
selectedValue: string;
constructor() {         
this.selectedValue = "0";  
}
}

组件:

addNewRow() { 
let dataModal = new DataModal();
dataModal.dropdown = response; //values are coming from api
this.DataModalList.push(dataModal);
}

HTML:

<form novalidate #form="ngForm" (ngSubmit)="submitEditForm(form.valid)">
<table>
<tr *ngFor="let item of DataModalList;let i= index ">
<td class="col-md-3">
<div>
<label class="control-label" for="BoxID"> Box Number </label>
<select class="form-control" #BoxID="ngModel" name="BoxID" [(ngModel)]="item.selectedValue">
<option value="0" disabled > -- select -- </option>
<option *ngFor="let element of item.dropdown"
[value]="element.value" >{{element.label}}</option>
</select>
</div>
</td>
<td class="col-md-3">
<div>
<a title="Add" (click)="addNewRow()" class="btn blue btn-sm">
<i class="fa fa-plus"></i>
</a>
</div>
</td>
</tr>
</table></form>

最佳答案

您的控件需要唯一的名称才能在 html 页面中正常工作。

因此在name 属性中也使用index-i。使用以下代码:

<select class="form-control" #BoxID="ngModel" name="BoxID-{{i}}"
[(ngModel)]="item.selectedValue" [ngModelOptions]="{standalone: true}>
<option value="0" disabled > -- select -- </option>
<option *ngFor="let element of item.dropdown"
[value]="element.value" >{{element.label}}
</option>
</select>

关于html - Angular 2 : Input Controls losses value inside form tag with ngFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41486369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com