2017-12-14 13 views
0

私のページでは、イオンLoadControllerを実装しました。読み込みダイアログを表示するには、私は、メソッド作る:外部からLoadingControllerを使用することができますか?

public presentLoading(text: string, timeout: number) { 
    if (!this.loading) { 
     this.loading = this.loadingCtrl.create({ 
     content: text, 
     dismissOnPageChange: true 
     }); 
     this.loading.present(); 
     setTimeout(() => { 
     this.closeLoading(); 
     }, timeout); 
    } 
    } 

を今では良いですが、私はまた、他のページにダイアログをロードしたいが、私は、コードを複製し、他のページに再び書きたい `tを。私はこのような静的メソッドを作ると思う:

public static presentLoading(loading: Loading, loadingCtrl: LoadingController, text: string, timeout: number) 

は醜いです。またはその他の方法:

public loading: Loading 

constructor(public loadingCtrl: LoadingController) { } 

public presentLoading(text: string, timeout: number) { ... } 

はMyLoadingControllerを作成し、何とかそれをinstatiate、私のページでそれを注入する他の方法ですか?

+1

機能をプロバイダに移動してどこにでも注入できない原因は何ですか? –

+0

私は角度とイオンの初心者です。プロバイダで関数を移動すると、LoadControllerは初期化されますか? – FAndrew

+0

あなたは単にプロバイダにloadingControllerを注入します。 –

答えて

0
  • 新しいサービスを作成しますが
  • あなたは
0

最後に、私はそれを行うに使用する新しいserviveを注入して、あなたの方法を追加constructor(private loadingCtrl: LoadingController) { }

  • それにMyLoadingController
  • を注入ロードコントローラと呼ばれます。 LoadingControllerを継承したCommonLoadingControllerを作成しました。そこにメソッドを追加しました。それをプロバイダとしてapp.module.tsに追加しました。今私はコンストラクタのどこにでも使用できます。

  • 関連する問題