我有一個Ionic 2
應用程序,它工作得很好。我將離子應用從rc-0
更新爲rc-2
。從那時起,我面臨離子生命週期事件ionViewDidLoad
的一個問題。我有一個註冊表單。離子生命週期沒有開火
import {Validators, FormBuilder, FormGroup , AbstractControl } from '@angular/forms';
export class Signup {
form: FormGroup;
constructor( formBuilder: FormBuilder) { }
ionViewDidLoad() {
this.form = this.formBuilder.group({
name: ['', Validators.required],
email: ['', CustomValidator.emailValidator],
password: ['', Validators.compose([Validators.minLength(8),Validators.required])],
password_confirmation: ['', Validators.compose([Validators.minLength(8),Validators.required])]
} }
}
而在我的html頁面我有,
<form [formGroup]="form" (ngSubmit)="signup()">
但當頁面加載,我在Web的控制檯得到一個異常
EXCEPTION: Error in ./Signup class Signup - inline template:9:8 caused by: formGroup expects a FormGroup instance. Please pass one in.
我相信form
變量在加載html之前未定義。我試過ngOnInit
,它工作正常。 ionViewDidLoad
在更新Ionic
之前正在工作,並且大多數示例僅在線提及上述方法。現在發生了什麼,改變了什麼?
試着在你的構造函數初始化的形式。那是我正在初始化它的地方。 – JoeriShoeby
我可以使用ngOnInit來使用它。但不知道爲什麼ionViewDidLoad沒有工作。儘量避免在構造函數中添加東西,儘管它在這裏並不重要。 – raj
您是否嘗試過我的建議?問題似乎是您的視圖在您的表單創建之前得到呈現。 – JoeriShoeby