关于验证器与angular2的比较字段,请参阅此问题.不幸的是Angular 2改变了一点,所以解决方案似乎不再起作用了.这是我的代码:
import {IonicApp,Page,NavController,NavParams} from 'ionic/ionic'
import {Component} from 'angular2/core'
import {FORM_PROVIDERS, FormBuilder, Validators} from 'angular2/common'
import {ControlMessages} from '../../components/control-messages'
import {ValidationService} from '../../services/validation-service'
@Page({
templateUrl: 'build/pages/account/register.html',
directives: [ControlMessages]
})
export class RegisterPage {
constructor(nav:NavController,private builder: FormBuilder) {
this.nav = nav
this.registerForm = this.builder.group({
'name' : ['', Validators.required],
'email' : ['',Validators.compose([Validators.required, ValidationService.emailValidator])],
'password' : ['',Validators.required],
'repeat' : ['',this.customValidator]
}
)
}
register() {
alert(this.registerForm.value.password)
}
private customValidator(control) {
//console.log(this.registerForm.value.password)
//return {isEqual: control.value === this.registerForm.value.password} …Run Code Online (Sandbox Code Playgroud) 我开始创建我的第一个Angular 4应用程序。我正在测试表单验证。我创建了一个模板驱动的表单,并添加了一些验证器。
现在,我想显示一个字段的验证错误。这是我的实际代码:
<input id="name" name="name" class="form-control" required minlength="4" [(ngModel)]="name" #name="ngModel">
<div *ngIf="name.invalid && (name.dirty || name.touched)" class="alert alert-danger">
<div *ngIf="name.errors.required">
Name is required.
</div>
<div *ngIf="name.errors.minlength">
Name must be at least 4 characters long.
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
恐怕要为表单中的每个输入都写上它!是否可以编写类似的内容(当然,我尝试了这段代码,但是没有用):
<div *ngIf="name.invalid && (name.dirty || name.touched)" class="alert alert-danger">
<p *ngFor="let error on name.errors">{{error}}</p>
</div>
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助:)