我有一个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