2017-08-08 2 views
2

私はトーストを使用しますが、私は2トーストを同時に開いてトーストを閉じることはできません。イオニック2トーストはページ上に閉じない

let toast = this.toastCtrl.create({ 
     message: 'İnternet bağlantınızda veya sunucuda sorun olabilir.', 
     duration: 3000, 
     position: 'bottom' 
}); 
toast.present(); 
+1

はあなたの全体の.TSページを表示してください。私は無限のトーストを作ったと思います。私は同時に2つ以上のタブを使ってプロジェクトをテストしましたが、実際には解雇されました。 – Duannx

答えて

2

あなたのトーストへの参照を保持し、それを提示する前に、それにdismiss()を呼び出します。このソリューションは、一度に複数のToastを表示させないようにします。

私が自分で使いたい解決策は、サービス内ですべてのToastの対話を処理することです。そして、あなたはそれを必要とするものは何でもコンポーネント/ページ/サービスにして、そのサービスを注入

ToastService:

import { Injectable } from '@angular/core'; 
import { ToastController, Toast } from 'ionic-angular'; 

@Injectable() 
export class ToastService{ 
    toast: Toast = null; 

    constructor(private toastCtrl: ToastController){ } 

    presentToast(text:string):void{ 
     let toastData = { 
      message: text, 
      duration: 3000, 
      position: 'top' 
     } 

     this.showToast(toastData); 
    } 

    presentClosableToast(text:string):void{ 
     let toastData = { 
      message: text, 
      showCloseButton: true, 
      closeButtonText: 'X', 
      position: 'top' 
     }; 

     this.showToast(toastData); 
    } 

    private showToast(data:any):void{ 
     this.toast ? this.toast.dismiss() : false; 
     this.toast = this.toastCtrl.create(data); 
     this.toast.present(); 
    } 
} 
関連する問題