Angular:无法绑定到“ ngModelOptions”,因为它不是“ input”的已知属性

时间:2018-12-20 18:40:09

标签: angular validation angular-material

我在验证时遇到问题。我想在电子邮件输入中添加验证,但收到错误消息“由于它不是'input'的已知属性,因此无法绑定到'ngModelOptions'。

add-component.html

<form name="form" [formGroup]="form" (ngSubmit)="form.valid" class="form">
<mat-form-field>
    <input matInput
           placeholder="Adres e-mail"
           formControlName="email"
           [(ngModel)]="employee.email"
           [ngModelOptions]="{standalone: true}"
           [ngClass]="{'is-invalid':form.get('email').touched && form.get('email').invalid}"
           type="email"
           required>
           <div *ngIf="form.get('email').touched && form.get('email').invalid"  class="invalid-feedback">
              <div *ngIf="form.get('email').errors.required">Email Name is required</div>
              <div *ngIf="form.get('email').errors.email">Email must be a valid email Address</div>
           </div>
  </mat-form-field>

add-component.ts

form = new FormGroup({
    email: new FormControl('', [
      Validators.required,
      Validators.email
    ])
  });

我在app.module.ts中包含了FormsModule,ReactiveFormsModule。

1 个答案:

答案 0 :(得分:0)

AngularAngularJS中的ngModelOptions指令已更改。许多功能在角度上已删除。来自角度文档:

  

跟踪此ngModel实例的配置选项。

     

名称:在表单控件元素上设置名称属性的替代方法。请参阅将NgModel用作独立控件的示例。

     

独立:设置为true时,ngModel不会在其父表单中注册自己,并表现为不在表单中。默认为false。

     

updateOn :定义表单控件值和有效性更新的事件。默认为'change'。可能的值:'change'| '模糊'| “提交”。

验证的角度方式是使用FormControl:

emailFormControl = new FormControl('', [
  Validators.required,
  Validators.email,
]);

您可以在此DEMO

中看到

编辑,感谢@ConnorsFan的评论。