当前位置: 首页 > 文档资料 > AppJS 中文文档 >

4、Events

优质
小牛编辑
131浏览
2023-12-01

1、 appLayout:可能是最重要的事件,这是由方向改变、窗口大小调整、DOM中的页面放置或任何可能使页面布局无效的事件引起的。

绑定到这个事件,并在这里放置任何与布局相关的代码。

2、 appShow:每当用户导航到这个页面时就会被触发。如果用户导航到另一个页面并最终返回,那么这个过程可能会多次触发。

3、 appHide:当用户从这个页面导航时,就会被触发。请注意,这并不一定意味着页面将被销毁,例如,当用户导航到另一个页面并可能返回时。

4、 appBack:当用户从这个页面中向后导航时,就会被触发。

5、 appBack:当用户从这个页面中向后导航时,就会被触发。

6、 appBeforeBack:当用户即将在堆栈中导航时,就会被触发。这个导航可以通过在事件处理程序中返回false来取消(类似于窗口。onbeforeunload作品)。

7、 appReady:这实际上被称为第一次在页面上调用appShow。它在确保窗口方面有额外的好处。onload被调用,这使得它对于网络绑定的初始化代码非常有用。

8、 appDestroy:当页面的实例即将被完全销毁时触发。这通常发生在用户完成从页面向后导航时。

要处理这些事件,需要在控制器中绑定它们。

App.controller('home', function (page) {
  $(page).on('appShow', function () {
    console.log('the user can see it!');
  });
});

或者,所有事件都可以被绑定为控制器类的方法。

function HomeController(page) {
  // stuff
}
HomeController.prototype.onShow = function () {
  console.log('the user can see it');
};
App.controller('home', HomeController);

在销毁时,重要的是取消绑定到页面范围之外的事件,以允许JavaScript垃圾收集器完成其工作。

App.controller('home', function (page) {
  function doStuff() {
    // handle event
  }
  window.addEventListener('keypress', doStuff);
  $(page).on('appDestroy', function () {
    window.removeEventListener('keypress', doStuff);
  });
});