【发布时间】:2017-10-24 07:23:36
【问题描述】:
我在这篇文章 (http://blog.ng-book.com/the-ultimate-guide-to-forms-in-angular-2/) 之后创建了一个 Angular 表单:
<div *ngFor="let data of somevar.records">
<form #abc_form="ngForm" (ngSubmit)="onSubmit(abc_form.value)">
{{data.id}} // prints 5
<input name="id" type="hidden" value={{data.id}} ngModel>
<input type="radio" name="name" value={{data.id}} ngModel>
<div class="submit-button">
<button type="submit">Save</button>
</div>
</form>
</div>
组件中的 data 哈希看起来像:
somevar = {records: [{id: 5}, {id: 6}]}
在这里,当我在视图中直接插入 data.id 时,它会在 UI 中打印 5。但是,当我尝试将其作为值分配给隐藏的输入字段时,它不存在。因此,在提交表单时,ID 参数不存在。
这里有什么问题?那么传递ID的正确方法是什么?
编辑
我也试过了:
<input name="id" type="hidden" [value]="data.id" ngModel>
注意当我删除 ngModel 时,该值被分配给隐藏字段:
<input name="id" type="hidden" [value]="data.id">
或
<input name="id" type="hidden" value={{data.id}}>
上述两种方法都有效并创建了分配了值的隐藏输入。但是,它不再是 ngModel 的一部分了
【问题讨论】:
-
你可以试试这个
[ngModel] = "data.id"吗? -
是的,可以,你能解释一下吗?
-
@RahulSingh 你能解释一下为什么 radio 元素可以工作,但 input 元素不能。 plnkr.co/edit/GGU7imcBCCJFWVsGgR89?p=preview
标签: javascript angular