【问题标题】:FormGroup expects a FormGroup instance. Please pass one in Ionic 4FormGroup 需要一个 FormGroup 实例。请在 Ionic 4 中通过一个
【发布时间】:2020-06-01 13:37:06
【问题描述】:

我无法在 Ionic 4 中获取 Formbuilder 的实例

我已经在 Class 和组件的构造函数中导入了 Formbuilder。

似乎我无法在新功能或存储或其他任何东西中访问 Formbuilder ....

我只能在构造函数中实例化Formbuilder

下面的这段代码显示了这个错误

// ERROR Error: formGroup expects a FormGroup instance. Please pass one in.

this.storage.get('culture').then((val) => {

    this.subscriptionForm = this.formBuilder.group({
      UserName: ['', Validators.required],
      Password: ['', Validators.required],
      Email: ['', Validators.required],
      FirstName: ['', Validators.required],
      LastName: ['', Validators.required]
    });
}

如果我在存储函数之前调用formbuilder可以得到它:

下面这段代码没有错误!

this.subscriptionForm = this.formBuilder.group({
    UserName: ['', Validators.required],
    Password: ['', Validators.required],
    Email: ['', Validators.required],
    FirstName: ['', Validators.required],
    LastName: ['', Validators.required]
});

this.storage.get('culture').then((val) => {
    //  code...
}

这是视图:

<form [formGroup]="subscriptionForm">
    <h3 style="color: gray; text-align: center;">Registration</h3>

    <div class="row">
        <div class="col-md-6">
            <div class="md-form">
                <i class="fa fa-user prefix grey-text"></i>
                <input type="text" formControlName="UserName" id="UserNam" class="form-control">
                <label for="UserName">Your UserName</label>
            </div>
            <br>
            <div class="md-form">
                <i class="fa fa-user prefix grey-text"></i>
                <input type="text" formControlName="FirstName" id="FirstName" class="form-control">
                <label for="FirstName">Your First name</label>
            </div>
        </div>
        <div class="col-md-6">
            <div class="md-form">
                <i class="fa fa-user-secret prefix grey-text"></i>
                <input type="password" id="Password" formControlName="Password" class="form-control">
                <label for="Password">Your password</label>
            </div>
            <br>
            <div class="md-form">
                <i class="fa fa-user-user prefix grey-text"></i>
                <input type="text" id="LastName" formControlName="LastName" class="form-control">
                <label for="LastName">Your Last name</label>
            </div>
        </div>
    </div>
    <br>
    <div class="row">
        <div class="col-md-12">
            <div class="md-form">
                <i class="fa fa-envelope prefix grey-text"></i>
                <input type="email" id="Email" formControlName="Email" class="form-control">
                <label for="Email">Your Email</label>
            </div>
            <br>
            <br>
            <div class="text-center">
                <button class="btn btn-indigo btn-lg btn-block waves-light" type="button" (click)="OnSubmit()">Send
                    <i class="fa fa-paper-plane-o ml-1"></i>
                </button>
            </div>
        </div>
    </div>
</form>

【问题讨论】:

标签: javascript angular ionic4 formbuilder angular-formbuilder


【解决方案1】:

由于&lt;form [formGroup]="subscriptionForm"&gt;而存在错误。

由于您将undefined 传递给表单的formGroup,它表示它需要一个值。

您可以通过添加*ngIf="subscriptionForm" 来简单地修复它。

<form *ngIf="subscriptionForm;else loading" [formGroup]="subscriptionForm">
  ...
</form>

<ng-template #loading><div>Loading...</div></ng-template>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 1970-01-01
    • 2022-01-18
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多