【发布时间】:2017-09-09 04:40:54
【问题描述】:
我是 Angular 的新手,可以说,我有响应式的形式,比如 follow
ngOnInit() {
this.registerFormGroup = this.formBuilder.group({
email: [ '', Validators.compose([Validators.required, Validators.email])],
password: this.formBuilder.group({
first: [ '', Validators.required ],
second: [ '', Validators.required, ]
})
});
}
我的角度模板看起来像跟随
<div class="container">
<form [formGroup]="registerFormGroup"
(ngFormSubmit)="registerUser(registerFormGroup.value)" novalidate>
<div class="form-group" >
<label for="email">Email</label>
<input type="email" formControlName="email" placeholder="Enter Email"
class="form-control">
</div>
<div *ngIf="!registerFormGroup.get('password').get('first').valid"
class="alert alert-danger">
</div>
<div class="form-group text-center">
<button type="submit" class="btn btn-success btn-lg"
[disabled]="!registerFormGroup.valid">Submit</button>
</div>
例如,电子邮件字段有两个验证,例如 required 和 email 类型验证所以取决于错误我必须显示错误消息所以在我的模板中使用类似
<div *ngIf="!registerFormGroup.get('email').valid && (registerFormGroup.get('email').touched)"
class="alert alert-danger">
</div>
我没有一次又一次地添加相同的registerFormGroup.get('email'),而是尝试创建像#emailForm="registerFormGroup.get('email')"这样的模板表达式
<input type="email" formControlName="email" placeholder="Enter Email" class="form-control" #emailForm="registerFormGroup.get('email')">
这样我就可以使用 like
<div *ngIf="!emailForm.valid" class="alert alert-danger">
</div>
但是我遇到了类似的错误
compiler.es5.js:1690 未捕获错误:模板解析错误: 没有将“exportAs”设置为“registerFormGroup.get('email')”的指令(“l> ]#emailForm="registerFormGroup.get('email')">
我犯了什么错误??
【问题讨论】:
-
模板变量不是普通变量。他们不能像那样持有任意值。
-
@HarryNinh 感谢您提供的信息,我想在模板驱动的表单中使用 #name="ngModel" 之类的
-
@Robert 该链接用于模板驱动,其中分配
#title="ngModel"但在反应形式中我们不能正确使用 ngModel。
标签: javascript angular angular4-forms