Ionic可以从外部使用LoadingController吗?

时间:2017-12-14 13:11:14

标签: angular ionic-framework ionic3

在我的页面中,我实现了离子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);
    }
  }

现在很好,但我也希望在其他页面中加载对话框,但我不想复制代码并在其他页面中再次写入。我想制作一个看起来像这样的静态方法:

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并以某种方式将其实例化并将其注入我的页面?

2 个答案:

答案 0 :(得分:0)

  • 创建名为MyLoadingController
  • 的新服务
  • 将加载控制器注入其中constructor(private loadingCtrl: LoadingController) { }
  • 在那里添加您的方法
  • 在您想要使用的位置注入新服务

答案 1 :(得分:0)

最后我做到了。我创建了CommonLoadingController,它扩展了LoadingController,我在那里添加了我的方法,并将它作为提供者添加到app.module.ts中。现在我可以在构造函数的任何地方使用它。