angular - 警报 Controller 输入框验证

标签 angular typescript ionic-framework ionic2 ionic3

如何在 Ionic 2 或 3 的 Alert Controller 中验证和显示输入错误

let prompt = Alert.create({
      title: 'Alert input validation',
      message: "How can I validate below input field?",
      inputs: [ 
        {
          name: 'email',
          placeholder: 'email'
        },
      ],
      buttons: [
        {
          text: 'Save',
          handler: data => {
                        let validateObj = this.validateEmail(data);
                        if (!validateObj.isValid) {
                            alert(validateObj.message);
                            return false;
                        } else {
                            //make HTTP call
                        }
                    }
        }
      ]
    });

有些人已经更新了 alertcontroller 并为 Ionic 团队提出了拉取请求。我认为 Ionic 团队计划在未来实现这一点。 https://github.com/ionic-team/ionic/pull/12541

我需要为此验证功能做一些变通。

plnkr http://plnkr.co/edit/IBonfBJngky0h8UtMwMD?p=preview

感谢您的帮助。

最佳答案

目前这个功能还没有实现,可以看this Git issue .

我在这里使用了 Toast 通知,我的客户对此没有任何投诉:)

这是我所做的。

警报框的 done 处理程序:

{
          text: 'Done',
          handler: (data) => {
            if (EmailValidator.isValid(data.email)) {
              if (this.data) {
                //my code
              } else {
                //my code
              }
              return true;
            } else {
              this.showErrorToast('Invalid Email');
              return false;
            }
          }
        }

toast 方法是这样的:

showErrorToast(data: any) {
    let toast = this.toastCtrl.create({
      message: data,
      duration: 3000,
      position: 'top'
    });

    toast.onDidDismiss(() => {
      console.log('Dismissed toast');
    });

    toast.present();
  }

用户界面

enter image description here

关于angular - 警报 Controller 输入框验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45969821/

相关文章:

angular - 如何在 Sonarqube 中包含 Angular Material 样式?

android - 在 Ionic v3.7.0 上更改 AndroidManifest.xml

TypeScript 泛型类型的泛型类型

javascript - VS Code 在 Angular js 中使用 get 显示错误

android - 在用户打开任何共享对话框时显示自己的 Cordova/PhoneGap 应用程序

angular - 弹性APM Opentracing在Docker apm-server中遇到CORS问题

angular - 部署 angular 8 和 asp.net core 3.1 的步骤

node.js - NestJS 创建一个新实例,自定义参数留在依赖注入(inject)层

javascript - 在 React 中重置子组件中的选项卡

android - ionic Gradle 故障 "Could not find com.android.tools.build:gradle:2.2.3"