我可以单身获得ModalController吗?

时间:2019-06-01 07:49:25

标签: angular ionic-framework

这是ModalController的非常普遍的用法。

constructor(private modalCtrl: ModalController) { }

但是,我想像这样在静态上下文中检索ModalController

static showModal() {
  // `instance` or whatever
  ModalController.instance.create({
     /* .... */
  });
}

有什么方法可以访问Angular或Ionic中的服务实例?

1 个答案:

答案 0 :(得分:0)

如果您要在角度中使用单例,则可以使用服务

https://angular.io/guide/singleton-services

import { Injectable } from '@angular/core';
import { zip } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class ModalService {
  private modals: any[] = [];
  constructor() { }

  add(modal:any){
    this.modals.push(modal);
  }

  remove(id:string){
    this.modals =  this.modals.filter(x=> x.id !== id)
  }

  open(id:string){
    let modal:any = this.modals.filter(x=>x.id === id)[0];
    modal.open();
  }

  close(id:string){
    let modal:any = this.modals.filter(x=>x.id === id)[0];
    modal.close();
  }


}