创建具有$ inject

时间:2018-03-18 11:55:33

标签: angularjs typescript

我创建了一个类来打开模态对话框。

export class ModalDialog {
  private open: boolean;
  private modalInstanse: angular.ui.bootstrap.IModalServiceInstance;

  constructor(
    @Inject('$uibModal')
    private $uibModal: angular.ui.bootstrap.IModalService
  ) {
    this.open = false;
  }

  public isOpen(): boolean {
    return this.open;
  }

  public closeDialog(): void {
    this.modalInstanse.close();
  }

  public dismissDialog(): void {
    this.modalInstanse.dismiss();
  }


  public openDialog( templateUrl: string, controller:any  ): void {
    this.modalInstanse = this.$uibModal.open({
      templateUrl: templateUrl,
      controller: controller
    });
    this.open = true;
    this.modalInstanse.result.finally((): void => {
      this.open = false;
    });
  }
}

现在我该如何使用这个类。

我期待我们可以将它用作

ModalDialog md = new ModalDialg();
md.openDialog(someTemplate,someController);

我在这里做错了。谁能解释一下?对不起,如果这看起来像愚蠢的问题。

  • 我是否需要将$ uibModal作为参数传递给ModalDialog()?
  • 由于注入了$ uibModal,创建ModalDialog的最佳方法是什么?

0 个答案:

没有答案