在Ionic3中从AlertController获取输入后,显示具有刷新页面的新警报

时间:2017-11-02 11:58:08

标签: android angularjs typescript ionic2 ionic3

我正在使用alertPromt,我有一个输入字段。我有两个选项说'ok'& '下一步'和'取消'。

如果用户点击“下一步”,我需要捕获输入值&添加到&后面的列表再次显示一个新警报,要求用户在ionic3中提供更多输入。

这应该是一个持续的过程。

问题面对:目前,对于第一个实例,页面刷新&新警报已创建。现在,如果我点击“下一步”按钮,警报将永远保持不变我无法将其从视图中删除。

已尝试的解决方案: 我尝试在调用新警报之前解除警报,但这给了我一个错误说,删除了view()一些错误。问题仍然存在。

我正在尝试在Android设备上运行此代码。 iOS设备我还没试过。

警报我正在使用AlertController。

addNewItem(){
    this.showItemAddAlert();
  }

  showItemAddAlert(){
    let prompt = this.alertCtrl.create({
      cssClass: 'custom-alert',
      title: 'Title',
      message: "Enter a name of the item.",
      inputs: [
        {
          id : 'alertInputId',
          name: 'itemName',
          placeholder: 'Item Name',
          value: ""
        },
      ],
      buttons: [
        {
          cssClass : 'first-button',
          text: 'Next',
          handler: data => {
             if(data.itemName !=""){
              this.addNewItem();

             }else{
                console.log('log here');
             }

          }
        },
        {
          text: 'Cancel',
        },
        {
          text: 'Ok',
          handler: data => {
            if(data.itemName !=""){
              console.log('add input here');
            }

          }
        }
      ]
    });
    prompt.present()
  }

1 个答案:

答案 0 :(得分:0)

这里我们首先提示显示初始警报我接下来有this.myNewPromt(data)这样的函数,它带有输入数据。

如果您需要,可以再次拨打presentPrompt,这将创建一个新警报;

 presentPrompt() {
      const alert = this.alertCtrl.create({
        title: 'title',
        inputs: [
          {
            name: 'Add',
            placeholder: 'Title'
          }
        ],
        buttons: [
          {
            text: 'Cancel',
            role: 'cancel',
            handler: data => {
              console.log('Cancel clicked');
            }
          },
          {
            text: 'OK',
            handler: data => {

            }
          },{
            text: 'Next',
            handler: data => {
              this.myNewPromt(data);
            }
          }

        ]
      });
      alert.present();
    }



myNewPromt(data){
   if(data){
     //do your stuff
     this.presentPrompt();//which creats an new promt 
   }else{
     //do your stuff
     //if you don't want then we are not calling if you want you can call.
   }
}