2016-10-19 3 views
1

Ich habe eine Klasse Action mit seiner Methode do() wobei die IonicAlert heißt. Was ich jetzt tun möchte, ist, dass ich so etwas wie Action.do().then(() => { /* do domething */ }); anrufen, aber erst nach OK wurde auf die Warnung geklickt.Ionic Alert: Warten bis die Taste gedrückt wird

do(): Promise<boolean> { 

    let alert = this.alertCtrl.create({ 
     buttons: [{ 
     text: 'OK', 
     handler:() => { 
      alert.dismiss().then(() => { /* do something */ }); 
      return false; 
     } 
     }] 
    }); 

    alert.present(); 
    return null; 
    } 
} 

Ich habe return null; nur keinen Fehler zu bekommen, aber natürlich arbeitet es nicht. Irgendeine Idee, wie man das löst? Dank

PS: Ich gab es auch für die ionische Forum: https://forum.ionicframework.com/t/ionic-alert-wait-until-button-is-pressed/67448

Antwort

4

die Lösung mit Hilfe dieser Website gefunden: https://basarat.gitbooks.io/typescript/content/docs/promise.html

do(): Promise<boolean> { 
    return new Promise((resolve, reject) => { 

     let alert = this.alertCtrl.create({ 
     buttons: [{ 
      text: 'OK', 
      handler:() => { 
      alert.dismiss().then(() => { resolve(true); }); 
      return false; 
      } 
     }] 
     }); 

     alert.present(); 

    }); 
    } 
} 
0

Hier ist eine Version, die wahr oder falsch zurückgeben kann:

showConfirm(): Promise<boolean> { 
    return new Promise((resolve, reject) =>{ 
     const confirm = this.alertCtrl.create({ 
     title : 'Are you sure ?', 
     buttons: [ 
      { 
      text: 'Yes', 
      handler:_=> resolve(true) 
      }, 
      { 
      text: 'No', 
      handler:_=> resolve(false) 
      } 
     ] 
     }).present(); 
    }) 
    } 

das Versprechen zu nennen:

0

Dies funktioniert für mich

handler:() => { 
      console.log(this.viewCtrl.dismiss()); 
     } 
Verwandte Themen