HTML:

 <ons-sliding-menu
                      main-page="page1.html"
                      menu-page="sidemenu.html"
                      side="left"
                      max-slide-distance="250px"
                      var="sidemenu"
                      type="reveal"
                      swipe-target-width="40px">
    </ons-sliding-menu>


JS:

sidemenu.on('postclose', function() {
            $scope.show_y = false;
            $scope.show_x = true;
        });


当用户滑动菜单关闭时,不会触发postclose功能,

点击效果不错。

请指教?

更新-

$scope.$watch(function($scope) { return $scope.sidemenu.isMenuOpened(); },
                  function() {
                    alert('hi');
                  });


侧面菜单上的滑动事件甚至不会触发isMenuOpened()

我开始了一个新项目,该项目带有裸露的侧面菜单和angular指令,没有更改,没有记录错误。

最佳答案

javascript中的ons-sliding-menu元素对象是$scope.sidemenu而不是sidemenu,请尝试对其进行修改并查看其是否有效。

如果仍然无法正常工作,可能是因为:


在HTML内部未正确声明控制器(例如:未涵盖声明的滑动菜单的代码部分)
永远不会执行创建ons-sliding-menu侦听器的代码,因此侦听器不存在


编辑

这是我在其中一个应用中实现的示例



app.controller('SlidingMenuController', function($scope){

    $scope.checkSlidingMenuStatus = function(){

        $scope.slidingMenu.on('postclose', function(){
            $scope.slidingMenu.setSwipeable(false);
        });
        $scope.slidingMenu.on('postopen', function(){
            $scope.slidingMenu.setSwipeable(true);
        });
    };

    $scope.checkSlidingMenuStatus();
});





希望能帮助到你

10-07 23:20