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

标签 javascript angularjs events ionic-framework

我有一个 $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();
    }
  }]
});

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

加载弹出窗口后是否有某种运行代码的方法?

最佳答案

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

这给您留下了几个选择。第一种是使用 ng-init 来启动不同的作用域函数,尽管这被认为是不好的做法。例如:

template: '<div ng-init="popupLoaded()"></div>'

要实现 Angular 更合适的方式,请在模板中使用 ng-controller 为模板主体创建子 Controller 。然后你可以从这个 Controller 中调用任何你想要的东西。例如:

template: '<div class="my-popup-content" ng-controller="MyPopupChildCtrl"></div>'

关于javascript - ionicPopup 完成加载后运行代码/事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793960/

相关文章:

angularjs - 将 AngularJS 表单发布到 NodeJS Express(错误请求)

javascript - 两个带有按键排序的独立对象的 ng-repeat

滚动重绘之前的javascript事件?

javascript - JS split方法,在数组中包含分隔符

javascript - 网页中调用的css和javaScript文件是什么?

javascript - 如何在 <a href> html 标签内插入 JavaScript 变量?

javascript - socket.io 在连接时发出

javascript - orderBy 不能在带有破折号的对象名称的 angularjs 中工作

c# - 使用 Tag 属性定位对象 c#

JavaScript 警报 onclick onchange if 语句