【问题标题】:Is possible to call closeMenu method of ons-sliding-menu component from back button event?是否可以从后退按钮事件调用 ons-sliding-menu 组件的 closeMenu 方法?
【发布时间】: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 事件触发时onsundefined

【问题讨论】:

  • 我可能会通过将事件侦听器附加到 $routeChangeStart 事件来做到这一点。

标签: javascript android angularjs cordova onsen-ui


【解决方案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 无关(至少在控制器中)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2015-04-30
    • 1970-01-01
    相关资源
    最近更新 更多