![](/img/trans.png)
[英]How to dismiss LoadingController once a method inside is complete?
[英]Injecting LoadingController in static method in angular 2
我試圖在靜態方法中注入LoadingController,但它沒有被注入。 是否可以在靜態方法中注入LoadingController?
我試過下面的代碼:
import { LoadingController, Loading } from 'ionic-angular';
import { Inject } from '@angular/core'
export class Commons {
@Inject(LoadingController)
static showLoadingMask( loadingText: string ) {
//Getting Null
let loadCtrl: LoadingController;
}
}
我嘗試過的其他代碼是:
import { LoadingController, Loading } from 'ionic-angular';
import { Inject } from '@angular/core'
export class Commons {
static showLoadingMask( loadingText: string, @Inject(LoadingController) loadCtrl ) {
//Getting Null
if( loadCtrl ) {
//Null
} else {
//Always executing else
}
}
}
我不想在這個類中有構造函數,因為我只想提供可跨項目重用的靜態方法以執行常見任務。
我不確定這是否是最好的方法,但你可以發送一個對injector
的引用並使用它來獲取提供者的實例。 例如
import { LoadingController, Loading } from 'ionic-angular';
import { Injector } from '@angular/core'
export class Commons {
static showLoadingMask(injector: Injector, loadingText: string ) {
let loadCtrl: LoadingController = this.injector.get(LoadingController);
}
}
在你想要使用它的組件中,它就像
import { Component, Injector } from '@angular/core';
// ...
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(..., public injector: Injector) { ... }
public yourMethod(): void {
Commons.showLoadingMask(this.injector, 'Loading...');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.