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); }); });