【发布时间】:2017-11-18 10:03:47
【问题描述】:
在我的 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 更新我的类型吗?
【问题讨论】:
-
angular.io/api/forms/FormControl 没有
resetForm,如果你去掉它,那么打字稿错误就会消失 -
声明
userEditForm为NgForm像这样:ViewChild("userEditForm") userEditForm: NgForm;,这样你就可以访问.resetForm()方法。 -
@developer033 这就是我所缺少的。完美运行!
标签: forms angular angular2-forms angular-reactive-forms