我无法导入我的视图控制器以在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的提供程序
视图控制器在注入页面时工作正常,但我想封装我的所有创建和解雇逻辑,所以我不必每次都重写它,因为我使用该模态。
如何将视图控制器注入模态?
答案 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;
}
由于您正在使用提供商,请记得清除您的模式选项,以便下次注入提供程序时它们不在此处。