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()
。
我开始了一个带有骨骼侧面菜单和角度指令的新项目,没有变化,没有记录错误。
答案 0 :(得分:1)
javascript中的ons-sliding-menu
元素对象为$scope.sidemenu
而不是sidemenu
,请尝试修改它,看看它是否有效。
如果它仍然不起作用可能是因为:
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();
});
希望有所帮助
答案 1 :(得分:0)
你需要使用$evalAsync
对变量进行消化,以消化角度
sidemenu.on('preopen', function() {
$scope.$evalAsync( function() {
$scope.sm_main_cover = true;
});
});