[Angular 2] Validation
Define a filed should has validation:
export class DemoFormSku { myForm: ControlGroup; sku: AbstractControl; constructor(fb:FormBuilder) { this.myForm = fb.group({ "sku": ["", Validators.required] }); this.sku = this.myForm.controls['sku']; } onSubmit(value){ console.log(value); } }
Form message
<div *ng-if="!myForm.valid" class="bg-warning">Form is invalid</div>
Field message
<div *ng-if="!sku.valid" class="bg-warning">SKU is invalid</div>
Field coloring
<div class="form-group" [class.has-error]="!sku.valid && sku.touched"> <label for="skuInput">SKU</label> <input type="text" class="form-control" id="skuInput" placeholder="SKU" [ng-form-control]="myForm.controls['sku']"> </div>
Specific validation
<div *ng-if="myForm.hasError('required', 'sku')"> SKU is required </div>
import {Component, View, FORM_DIRECTIVES, Validators, FormBuilder, NgIf} from 'angular2/angular2'; @Component({ selector: 'demo-form-sku' }) @View({ directives: [FORM_DIRECTIVES, NgIf], template: ` <div> <h2>Demo Form: Sku</h2> <!-- ngForm is attched to the form, and #f="form" form is also come from ngForm--> <form [ng-form-model]="myForm" (submit)="onSubmit(myForm.value)"> <div class="form-group" [class.has-error]="!sku.valid && sku.touched"> <label for="skuInput">SKU</label> <input type="text" class="form-control" id="skuInput" placeholder="SKU" [ng-form-control]="myForm.controls['sku']"> </div> <div *ng-if="!sku.valid" class="bg-warning">SKU is invalid</div> <button type="submit" class="btn btn-default">Submit </button> <div *ng-if="myForm.hasError('required', 'sku')"> SKU is required </div> </form> <div *ng-if="!myForm.valid" class="bg-warning">Form is invalid</div> </div> ` }) export class DemoFormSku { myForm: ControlGroup; sku: AbstractControl; constructor(fb:FormBuilder) { this.myForm = fb.group({ "sku": ["", Validators.required] }); this.sku = this.myForm.controls['sku']; } onSubmit(value){ console.log(value); } }