是否可以从后退按钮事件调用 ons-sliding-menu 组件的 closeMenu 方法?
Posted
技术标签:
【中文标题】是否可以从后退按钮事件调用 ons-sliding-menu 组件的 closeMenu 方法?【英文标题】:Is possible to call closeMenu method of ons-sliding-menu component from back button event? 【发布时间】:2014-08-26 04:28:44 【问题描述】:当用户按下 android 的后退按钮时,我想关闭 ons-sliding-menu
。我怎样才能做到这一点?当前的实现是:
var manager =
initialize: function()
this.bindEvents();
,
bindEvents: function()
document.addEventListener('deviceready', this.onDeviceReady, false);
,
onDeviceReady: function()
document.addEventListener("backbutton", manager.onBackKeyDown, false);
document.addEventListener("menubutton", manager.onMenuKeyDown, false);
,
onBackKeyDown: function()
// close ons-sliding-menu if opened
,
onMenuKeyDown: function()
// close or open ons-sliding-menu
;
manager.initialize();
我尝试调用ons.slidingMenu.toggleMenu()
,但是当onBackKeyDown
事件触发时ons
是undefined
。
【问题讨论】:
我可能会通过将事件侦听器附加到 $routeChangeStart 事件来做到这一点。 【参考方案1】:OnsenuUi 1.1.x 具有组件 ons-back-button
【讨论】:
【参考方案2】:这可以通过在$routeChangeStart
事件上使用事件监听器来实现。应该这样做。
$rootScope.$on('$routeChangeStart', function ()
// I'd probably rename this function no to something like closeMenuIfOpen??
manager.onBackKeyDown();
);
【讨论】:
@JonathanPrates 抱歉,我不知道 onsen ui - 但是您正在编写 angular,因此它与 ui 无关(至少在控制器中)以上是关于是否可以从后退按钮事件调用 ons-sliding-menu 组件的 closeMenu 方法?的主要内容,如果未能解决你的问题,请参考以下文章