无法将视图控制器导入 Ionic 2 中的提供程序



我无法导入视图控制器以在 Ionic 2 中的提供程序中使用。

import { ModalController, ViewController, NavController } from "ionic-angular";
@Injectable()
export class DynamicModal<T extends IHasId> {
modalOptions: DynamicModalOptions<T>;
constructor(public modalCtrl: ModalController, public viewCtrl: ViewController)

当我以这种方式尝试时,它会给我一个错误:

没有视图控制器的提供程序

视图控制器在注入页面时工作正常,但我想封装我所有的创作并消除逻辑,这样我就不必每次使用该模态时重写它。

如何将视图控制器注入模态?

与其注入视图控制器,不如将其包含在模态选项中:

export class DynamicModalOptions<T extends IHasId>
{
entity: T;
//other properties
viewCtrl: ViewController;
}

现在,当您关闭时,您可以从选项中获取视图控制器

close() {
this.modalOptions.viewCtrl.dismiss();
this.modalOptions = null;
}

由于您使用的是提供程序,请记住清除您的模态选项,以便下次注入提供程序时它们不在此处。

你不需要在app.module.ts中声明它,你只需要在类构造函数中导入并声明它:

import { ViewController } from "ionic-native";
export class DynamicModal<T extends IHasId> {
constructor(private viewCtrl: ViewController) {}
}

相关内容

最新更新