ionicPopup完成加载后运行代码/事件?

Aᴄʜ*_*ᴀɪʟ 3 javascript events angularjs ionic-framework ionic

我有一个$ ionicPopup,其中包含一些交互式内容 - 但是,为了使用它,我必须使用一个简单的命令将其初始化:

myFactory.initialise(myElement)

有没有办法告诉弹出窗口是否已加载所以我可以触发此初始化?
是否存在某种ionicPopupLoaded事件?

例如:

var customPopup = $ionicPopup.show({
  title: 'Interactive Popup',
  cssClass: 'interactive-popup',
  template: '<div id="myElement"></div>',
  scope: $scope,
  buttons: [{
    text: 'Cancel',
    type: 'button-default',
    onTap: function(e) {
      return false;
    }
  },
  {
    text: 'Option',
    type: 'button-energized',
    onTap: function(e) {
      e.preventDefault();
      myFactory.functionA();
    }
  },
  {
    text: 'OK',
    type: 'button-balanced',
    onTap: function(e) {
      e.preventDefault();
      myFactory.functionB();
    }
  }]
});
Run Code Online (Sandbox Code Playgroud)

这是我的弹出窗口,一旦加载并显示,我想自动调用myFactory.initialise(myElement)以初始化我的内容..

一旦加载了弹出窗口,是否有某种运行代码的方法?

Mat*_*Way 6

查看$ionicPopup源代码,似乎没有任何内置方式可以挂钩到某种加载的进程或事件.就个人而言,我只想创建自己的弹出服务,但如果你必须使用他们的对象,看起来唯一的选择就是利用你可以传递给show()函数的模板.

这给你留下了几个选择.第一种是用于ng-init启动不同的范围功能,尽管这被认为是不好的做法.例如:

template: '<div ng-init="popupLoaded()"></div>'
Run Code Online (Sandbox Code Playgroud)

要实现更加适合角度的方式,请ng-controller在模板内部使用为模板主体创建子控制器.然后你可以在这个控制器内调用你想要的任何东西.例如:

template: '<div class="my-popup-content" ng-controller="MyPopupChildCtrl"></div>'
Run Code Online (Sandbox Code Playgroud)