javascript - 如何在 ionic 3 上的密码或电子邮件错误时提醒用户?
问题描述
我正在尝试使用 showAlert 创建检查,以在用户输入错误的电子邮件或密码时通知用户,但我无法使用 try and catch
我可以通过 try and catch 来做到这一点吗?
这是我的 login.ts 代码示例
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { User } from '../../models/user';
import { AngularFireAuth } from "angularfire2/auth";
import { MenuController } from "ionic-angular";
import { AlertController } from "ionic-angular";
@IonicPage()
@Component({
selector: 'page-login',
templateUrl: 'login.html',
})
export class LoginPage {
user = {} as User;
constructor(private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams, public menu: MenuController, public alertCtrl: AlertController) {
}
ionViewWillEnter(){
this.menu.enable(false);
}
async login(user: User){
try{
const result = await this.afAuth.auth.signInWithEmailAndPassword(user.email, user.password);
if (result) {
this.navCtrl.setRoot('HomePage');
}
}
catch {
showAlert() {
const alert = this.alertCtrl.create({
title: 'New Friend!',
subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
buttons: ['OK']
});
alert.present();
}
}
}
register(){
this.navCtrl.push('RegisterPage');
}
}
解决方案
我决定如下
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { User } from '../../models/user';
import { AngularFireAuth } from "angularfire2/auth";
import { MenuController } from "ionic-angular";
import { AlertController } from "ionic-angular";
@IonicPage()
@Component({
selector: 'page-login',
templateUrl: 'login.html',
})
export class LoginPage {
user = {} as User;
constructor(private afAuth: AngularFireAuth, public navCtrl: NavController, public navParams: NavParams, public menu: MenuController, public alertCtrl: AlertController) {
}
showAlert() {
const alert = this.alertCtrl.create({
title: 'Atenção',
subTitle: 'Seu e-mail ou senha estão incorretos, por favor tente novamente.',
buttons: ['OK']
});
alert.present();
}
ionViewWillEnter(){
this.menu.enable(false);
}
async login(user: User){
try{
const result = await this.afAuth.auth.signInWithEmailAndPassword(user.email, user.password);
if (result) {
this.navCtrl.setRoot('HomePage');
}
}
catch {
this.showAlert();
}
}
register(){
this.navCtrl.push('RegisterPage');
}
}
推荐阅读
- html - 在没有 javascript 或请求参数的情况下在重定向之间保持 http 表单值
- vue.js - Vue/Nuxt 中的 DFP 广告效果不佳
- jquery - 错误不要在下拉菜单中打开链接
- r - 我没有得到方差分析 lsmeans 的显着差异,但有一些非常显着的数据。我的脚本有什么问题?
- insert - SQL Query 将选择查询的转置插入另一个表
- mms - 支持 MMS 和 GOOSE 驱动程序的 ScadaLTS 功能
- java - 在微调器中显示 TTS 可用语言
- python - 如何确定当前的 Python egg 缓存目录?
- bash - 为什么在 USERNAME 设置为其他内容时服务以 root 身份运行
- java - Punch Clock While 循环故障