2016-08-04 11 views
2

私は基本的な警告に小さな問題があります。ここに私のシナリオがあります。 - >ページの[送信]ボタンをクリックし、返されたレコードがない場合は警告メッセージが表示されます。私はそれを却下するために[OK]をクリックします。 - 正常に動作します。 - >同じシナリオを2回目にして、無効な入力を提供して、私がレコードバックを得られないようにして、アプリケーションが再び同じアラートを受け取るようにします。 [OK]をクリックして警告を閉じる - 動作しません。 これについて助けてもらえますか?私はボタンのクリックでdoAlert()を呼び出した場合イオン2警告の問題

fetchGroupMembers(form) { 
    //referring this to obj because scope of this is confusing in callback functions 
    var obj = this; 
    //creating loader 
    let loading = Loading.create({ 
     content: "Please wait...", 
    }); 
    //Showing loader on current screen 
    obj.nav.present(loading); 
    //Send message to server to fetch the group members 
    obj.myGlobals.socket.emit('fetchGroupMembers', { groupCode: form.controls['groupCode'].value }); 
    obj.myGlobals.socket.on('groupMembers', function (result) { 
     while (obj.students.pop()); //removing all elements from array of students 
     //fetching each record and creating student 
     result.forEach(function (record) { 
     obj.students.push(new Student(record)); 
     }); 
     //on successfull fetch dismiss the loader 
     loading.dismiss(); 
     if (obj.students.length > 0) { 
     //set students to global 
     obj.myGlobals.students = obj.students 
     //navigating to next page with parameters 
     obj.nav.push(HostPage, { 
      Students: obj.students 
     }); 
     console.log(obj.nav); 
     } else { 
     //creating alert 
     obj.doAlert(); 
     } 
    }); 

    } 
    doAlert() { 
    let alert = Alert.create({ 
     title: 'No Student Found!!', 
     subTitle: "Please check group code. can't find students!!", 
     buttons: ['OK'] 
    }); 
    this.nav.present(alert); 
    } 
} 

: は、ここにレコードを取得するために私のコードです。それは魅力のように働く。私はなぜ私のシナリオでは動作していない問題を把握することはできません。 ご協力いただければ幸いです。 おかげで、Alertクラスのドキュメントで説明したように

+0

あなたは私たちのデモplunkerを作成してもらえ何が起こっているのを見ることができますか? – sebaferreras

+0

分散コードのためのプランナーを作成する方法は本当にわかりません(クライアント/サーバーとサーバーはさらにmLab DBに接続されています)。 –

+0

私は同様の問題を遭遇したようです:最初のポップアップはうまく動作し、2番目は解雇できません。問題を提出しました:https://github.com/driftyco/ionic/issues/7554 Plunker here:http://plnkr.co/edit/kC2EtfmONmJ9UxPVXkJE?p=preview @BajinderBudhwar:イオンバグレポートテンプレートには、 Ionic Plunkerテンプレートは、Ionicバグを提出したくない場合でも使用できます。 – Gilead

答えて

2

適切な方法は、Alert.dismiss(によって返された約束を待つことである)を解決するために呼び出す:

public TEST =() => { 
    let alert1 : Alert = Alert.create({ 
    title: 'Prompt 1', 
    message: "First", 
    buttons: [{ 
     text : 'OK', 
     handler :() => { 
     console.log("First OK"); 
     alert1.dismiss().then(() => { // wait for the previous transition to finish or the following alert will malfunction 
      let alert2 : Alert = Alert.create({ 
      title : 'Prompt 2', 
      message : "Second", 
      buttons : [{ 
       text : 'OK', 
       handler :() => { 
       console.log("Second OK"); 
       alert2.dismiss(); // DISMISSING MANUALLY 
       } 
      }] 
      }); 
      this.nav.present(alert2); 
     }); 
     } 
    }] 
    }); 
    this.nav.present(alert1); 
}; 
+0

完璧な例.. !!本当に助けを感謝します..ありがとう –

+0

@BajinderBudhwar私はそれが助けてうれしいです。 upvoteと答えを受け入れるだろう:) – Gilead

+0

イオン2で動作しません..任意のアイデア?それは私に 'Uncaught(約束):removeViewが見つかりませんでした'を返します –

関連する問題