【问题标题】:cannot read property 'validator' of undefined in angular 2?无法读取角度 2 中未定义的属性“验证器”?
【发布时间】:2016-09-22 11:37:09
【问题描述】:

如何在 Angular2 中验证表单?我收到一个错误。

https://plnkr.co/edit/slhySWT0mJXkloGK1kfO?p=preview

<ion-navbar *navbar>
  <ion-title>
    Ionic 2
  </ion-title>
</ion-navbar>

<ion-content class="has-header">
    <form [ngFormModel]="loginForm" (submit)="login($event)">
            <ion-input stacked-label>
                <ion-label>Username</ion-label>
                <input type="text" ngControl="username">
            </ion-input>

            <ion-input stacked-label>
                <ion-label>Password</ion-label>
                <input type="password" ngControl="password">
            </ion-input>

            <div padding>
                <button block type="submit" [disabled]="!loginForm.valid">Login</button>
            </div>
        </form>
</ion-content>

错误

TypeError: Cannot read property 'validator' of undefined
    at NgFormModel.ngOnChanges (https://code.angularjs.org/2.0.0-beta.15/angular2.dev.js:17240:73)
    at AbstractChangeDetector.ChangeDetector_FormClass_0.detectChangesInRecordsInternal (viewFactory_FormClass:86:59)

【问题讨论】:

标签: angularjs angular ionic2 angular2-routing angular2-template


【解决方案1】:

我不熟悉 ionic2,所以可能发生了一些我不知道的事情。但是,您似乎没有在 FormClass 中声明或初始化表单控件。也许试试这个:

export class FormClass {

  loginForm: ControlGroup;

  constructor(private fb: FormBuilder){
    this.loginForm = this.fb.group({
      'username': ['', Validators.required],
      'password': ['', Validators.required]
    });
  }

}

您还需要在 FormClass 中定义一个登录方法来处理您定义的(提交)绑定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-19
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 2018-04-15
    • 2016-07-20
    相关资源
    最近更新 更多