将来自离子警报的警报文本输入保存到数据库中

时间:2018-08-06 12:54:49

标签: javascript typescript ionic-framework ionic3 alert

我创建了一个离子警报来拒绝请求。我希望用户在点击确认之前输入拒绝请求的原因。然后,我想将此数据保存到数据库中,并设置一个方法(declineRequest)。

该方法正在拒绝请求。问题在于如何将警报“ Notes”输入字段保存到数据库中,以及如何确保只有在单击“ confirm”时才运行拒绝请求方法。

代码如下:

HTML:

<ion-list>
    <ion-card *ngFor="let r of requests; let i = index">
      <ion-item>
      <h2>{{r.userId}}</h2>
      <p>{{r.requestDetail}}</p>
      <p>{{r.fromDateTime}} to {{r.toDateTime}}</p>
      <p>{{r.type}}</p>
      </ion-item>
      <ion-card-content>
            <button class="approve" ion-button icon-left color="secondary" (click)="approveAlert(r.id)">
              <ion-icon name="checkmark"></ion-icon>
              Approve
            </button>
            <button class="decline" ion-button icon-left color="danger" (click)="declineAlert(r.id)">
              <ion-icon name="close"></ion-icon>
              Decline
            </button>
      </ion-card-content>
    </ion-card> 
  </ion-list> 

TS:

declineAlert(requestId) {
const alert = this.alertCtrl.create({
  title: 'Confirm Request Declined',
  subTitle: 'Notes:',
  inputs: [
    {
      name: "Note",
      type: "text",
      placeholder: 'Please enter reasons'
    }],
  buttons: [ { text:"Cancel"
  },
  { text: "Confirm",      
  handler: data => {
    console.log(JSON.stringify(data)); 
    console.log(data.Note);
  }
  }],
  cssClass: 'alertCustomCss'
});
alert.present();
console.log(requestId);
let notes = Note;
this.declineRequest(requestId, notes);
}

我尝试了不同的方法,但是似乎无法从拒绝的“便笺”中保存文本。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

尝试使用我的工作代码

  let alert = this.alertCtrl.create({
  title: 'Confirm Request Declined',
  inputs: [
    {
      type: 'textarea',
      name: 'Message',
      placeholder: 'Please enter reasons',
    },
  ],
  buttons: [
    {
      text: 'Yes',          
      handler: data => {           
        var message = data.Message;
       //Here is Api call
      }
    },
    {
      text: 'No',          
      role: 'cancel',
      handler: data => {           
        var message = data.Message;
        //Your logic
      }
    }
  ]
});
alert.present();

答案 1 :(得分:0)

正如Keval指出的那样,您只需要在处理程序内使用方法,如下所示:

declineAlert(requestId) {
  const alert = this.alertCtrl.create({
  title: 'Confirm Request Declined',
  subTitle: 'Notes:',
  inputs: [
    {
      name: "Note",
      type: "text",
      placeholder: 'Please enter reasons'
    }],
  buttons: [ { text:"Cancel"
  },
  { text: "Confirm",      
  handler: data => {
      this.declineRequest(requestId, data.Note);
      // additional steps like pop() page etc
    }
  }],
    cssClass: 'alertCustomCss'
  });
  alert.present();
}