无法将ViewController导入Ionic 2中的提供程序

时间:2017-07-30 02:18:30

标签: javascript angular typescript ionic2

我无法导入我的视图控制器以在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)

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

  

没有ViewController的提供程序

视图控制器在注入页面时工作正常,但我想封装我的所有创建和解雇逻辑,所以我不必每次都重写它,因为我使用该模态。

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

2 个答案:

答案 0 :(得分:1)

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

import { ViewController } from "ionic-native";

export class DynamicModal<T extends IHasId> {
  constructor(private viewCtrl: ViewController) {}
}

答案 1 :(得分:1)

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

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

现在当你解雇时,你可以从选项中获取视图控制器

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

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