【发布时间】:2018-03-03 23:07:06
【问题描述】:
这里我尝试在forms 中显示错误消息Ionic-3。
这是我的email.html 文件:
<form [formGroup]="form" (submit)="signIn()">
<ion-grid>
<ion-row>
<ion-col>
<ion-item>
<ion-label color="primary" floating>Email</ion-label>
<ion-input [formControl]="form.controls['email']"></ion-input>
</ion-item>
<p *ngIf="form.controls.email.errors && form.controls.email.dirty" class="danger" padding>Email is not valid.</p>
</ion-col>
</ion-row>
</ion-grid>
<ion-list padding>
<ion-item>
<button ion-button default item-end color="light" (click)="cancel()">CANCEL</button>
<button ion-button default item-end color="next" [disabled]="!form.valid" (click)="next()">NEXT</button>
</ion-item>
</ion-list>
</form>
在我的email.ts 文件中,我有:
export class EmailSignupPage {
form : FormGroup;
constructor(
private formBuilder: FormBuilder,
public navCtrl: NavController,
public navParams: NavParams,
) {
this.form = this.formBuilder.group({
email: ['', Validators.compose([Validators.required, Validators.email])]
});
}
ionViewDidLoad() {
}
next() {
this.navCtrl.push(CredentialPage);
}
cancel() {
this.navCtrl.popToRoot();
}
}
我认为我的代码在email.ts 文件中很好,但我不知道如何在表单中显示错误,因为我是离子和角度的新手!
有没有人可以帮我解决这个问题?
谢谢!
【问题讨论】:
-
你想达到什么目的(设置有条件的红色,显示有条件的消息,其他自定义行为......)?我的意思是你已经有一个条件错误消息,如果有错误应该出现(你正确使用
*ngIf)。 -
这就是重点!我不知道如何使用 *ngIf 来显示错误消息。我必须在这里做的不是工作!我已经为颜色做了错误条件。你能知道在我这种情况下如何使用 *ngIf 吗?
-
1) 您的
signIn()方法 (<form (submit)="signIn()">) 将在单击CANCEL按钮或NEXT按钮时被调用,除非您将它们放在<form>标记之外(例如移动整个<ion-list>...</ion-list>在</form>之后)。 2)您正在正确使用Angular2*ngIfdirective。事实上,*ngIf="myVar"的工作方式类似于 javascriptif (myVar){}。如果myVar未定义或为假,*ngIf将不显示它附加到的内容。查看链接中的示例。 (PS:你的代码在我构建时表现良好)。
标签: angular validation ionic-framework ionic3