Angular2重用表单组件进行验证的有效方法

时间:2016-11-04 05:34:52

标签: angular angular2-template angular2-components

考虑以下形式,并为输入字段

设置一些验证器
<form #userForm="ngForm" (ngSubmit)="onSubmit()" novalidate>
<div class="form-group">
        <label for="userName">User Name</label>
        <input type="text" class="form-control" [(ngModel)]="user.name" name="name" id="userName" required  minlength="4" maxlength="24" #name="ngModel">
            <div *ngIf="name.errors && (name.dirty || name.touched)"    class="alert alert-danger">
                <div [hidden]="!name.errors.required">
                    Name is required
                </div>
                <div [hidden]="!name.errors.minlength">
                    Name must be at least 4 characters long.
                </div>
                <div [hidden]="!name.errors.maxlength">
                    Name cannot be more than 24 characters long.
                </div>
         </div>
     </div>
<button type="button" pButton icon="fa-check" 
      (click)="saveUser()" label="Save" [disabled]="!userForm.form.valid"></button>
</form>

此处验证消息正常运行。在Name字段的许多页面中使用相同的控件,添加如上所述的验证器消息会使我的模板变大并复制代码。

如果我有另一个输入字段以相同/不同的形式获取Department name (Min:6 chars & Max:30 chars),我应该再次编写错误消息div部分。

是否有任何通用方法可以通过指定Required,Min,Max和amp;来编写一次Input组件。明确地模式化并在许多地方使用它。

0 个答案:

没有答案