我试图在静态方法中注入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;
}
}
我不想在这个类中使用构造函数,因为我只想提供可跨项目重用的静态方法以用于常见任务。
答案 0 :(得分:1)
我不确定这是否是最佳方法,但您可以发送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...');
}
}