大家好,我正在做一个" dinamic"使用Angular的表单,我在获取表单中输入的值时遇到一些问题,我的代码是:
HTML
<form #myForm="ngForm" (ngSubmit)="onSubmit(myForm)" *ngFor="let con of controls" novalidate>
<div class="form-group" *ngIf = "con.type != 'submit'">
<label for="{{con.id}}">{{con.label}}</label>
<input [(ngModel)]="con.name" type="{{con.type}}" class="{{con.class}}" name="{{con.id}}">
</div>
<input *ngIf = "con.type == 'submit'" type="submit" class="{{con.class}}" value={{con.label}}>
</form>
组件:
import { Component ,Input} from '@angular/core';
import { NgForm } from '@angular/forms';
@Component({
selector: 'form-tag',
templateUrl: './form.html',
})
export class FormComponent {
@Input() controls: any[];
onSubmit(sub: NgForm)
{
console.log(sub.email);
}
}
问题是,当我提交表单console.log(sub.email);返回一个空对象
答案 0 :(得分:1)
由于你使用ngForm,它是一个模板驱动的形式,而不是一个被动的形式。在模板驱动的表单中,您需要将myForm.value传递给onSubmit():
onSubmit(myForm.value)
此外,从您的代码示例中,我们还不清楚它是什么。
答案 1 :(得分:0)
我确实不确定您要尝试做什么,但似乎您使用<form>
标记循环控件,而不仅仅使用{{1}和div.form-group
本身。
也许将它们包裹在<input />
中并循环显示它而不是<ng-template />
标记?
这样的事情:
<form>