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();
});
希望能帮助到你