2015-02-06 2 views
0

HTML:онсэн-щ postclose не запускается с ударяя

<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 не срабатывает, когда пользователь пойло меню закрыто,

щелчки работают нормально, хотя. ...

советую пожалуйста?

UPDATE ---

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

даже не isMenuOpened() отапливают мазковых событий на sidemenu.

Я начал новый проект с боковым меню с голыми костями и угловой директивой, без изменений, ошибок не было.

+0

preopen не запускается с помощью прокрутки либо – Dan

ответ

0

вам нужно использовать $evalAsync на изменениях переменных, чтобы быть переварены угловым

sidemenu.on('preopen', function() { 
      $scope.$evalAsync(function() { 
       $scope.sm_main_cover = true; 
      }); 
     }); 
1

Объект элемента ons-sliding-menu внутри javascript - $scope.sidemenu, а не sidemenu, попробуйте изменить его и посмотреть, работает ли он.

Если это все еще не работает, вероятно, происходит потому, что:

  • контроллер объявлен неправильно внутри HTML (например: не покрывает часть кода, где скольжение меню в объявленной)
  • код, который создает ons-sliding-menu слушателя никогда не выполняется, так что слушатель не существует

EDIT

Это является примером того, что я реализовал в одном из моих приложений

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(); 
 
});

Надеется, что это помогает

+0

У меня есть один глобальный контроллер на шаблоне - его одностраничное приложение в dev - так что только одна директива ... нажмите событие register no problem - поэтому угловое изображение правильно просматривает и меняет переменную, функция postopen специфична для ONSEN-UI, и это не слушает post-in sidemenu event – Dan

+0

Вы проверили, что код, создающий слушателя, выполнен, и нет ошибок js? –

+0

да - ошибок нет @AndreasArgelius, можете ли вы воспроизвести ошибку на вашем конце? кажется, что функция вспомогательных функций не срабатывает при прокрутке sidemenu, щелчки регистрируются в порядке и вспомогательные функции, когда CLICKED .... soooooo, onsen-ui + салфетки не прослушивают? – Dan

Смежные вопросы