在我的Angular 2表格中,我有以下打字稿:
export class UserEditComponent implements OnChanges {
@Input() userModel: IUserModel;
@Output() onSave: EventEmitter<IUserModel> = new EventEmitter<IUserModel>();
@ViewChild("userEditForm") userEditForm: FormControl;
private userNameIsValid = true;
constructor(private httpService: HttpService) {
}
ngOnChanges (changes: SimpleChanges) {
this.userEditForm.resetForm();
console.log(this.userEditForm);
}
....
}
和模板html:
<form class="form-horizontal" #userEditForm="ngForm" (ngSubmit)="onSaveUser()" novalidate>
....
</form>
我尝试使用.reset()函数,但它没有做任何事情。 .resetForm实际上将表单的_submitted属性从true重置为false,但是,它给我一个TypeScript错误Property resetForm does not exist on type FormControl
。
首先,resetForm是一个有效的实际功能吗?我似乎无法找到它的任何文档...但它的工作原理和.reset()没有。
其次,如何摆脱这种TypeScript错误?我是否需要更新Angular 2的输入法?
答案 0 :(得分:2)
将userEditForm
声称为NgForm
,如下所示:
@ViewChild("userEditForm") userEditForm: NgForm;
现在您可以访问.resetForm()
方法。
答案 1 :(得分:1)
您应该从@ angular / forms导入NgForm并尝试此操作。
OnClear(userEditForm: NgForm) {
userEditForm.reset();
}