我升级到RC.4并尝试使用新的表单API。这就是我得到的:
“typeerror:this.form.updatevalueandvalidity不是函数”
异常源于Angular中的文件“form_group_directive.js”:
FormGroupDirective.prototype.ngOnChanges = function (changes) {
this._checkFormPresent();
if (collection_1.StringMapWrapper.contains(changes, 'form')) {
var sync = shared_1.composeValidators(this._validators);
this.form.validator = validators_1.Validators.compose([this.form.validator, sync]);
var async = shared_1.composeAsyncValidators(this._asyncValidators);
console.log('from within angular:---------------------------------------------------------------------------------------------------');
console.log(this.form);
this.form.asyncValidator = validators_1.Validators.composeAsync([this.form.asyncValidator, async]);
this.form.updateValueAndValidity({ onlySelf: true, emitEvent: false });
}
console.log-statement的输出是一个
FormGroupDirective
,它没有名为updateValueAndValidity
的方法。上述错误消息对任何人都有意义吗?
最佳答案
我不认为你可以同时使用模板驱动的方法和模型驱动的方法。
因此,我将使用以下两种方法之一:
<form *ngIf="showForm" #userForm="ngForm"
(ngSubmit)="userFormSubmit()">
</form>
或:
<form *ngIf="showForm" [formGroup]="userForm"
(ngSubmit)="userFormSubmit()">
</form>
其中
userForm
是在组件类中用FormBuilder
或FormControl
定义的。我认为这种方法是你需要的…