2015-02-06 25 views
0

HTML:溫泉的UI 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 2015-02-10 00:28:27

回答

0

你需要使用的變量的變化$evalAsync由角

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

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

希望它可以幫助

+0

我在模板上有一個全局控制器 - 它的在開發中的單頁面應用程序 - 所以只有一個指令...點擊事件註冊沒有問題 - 所以角正確觀看和更改變量,後開放功能特定於ONSEN-UI,並且不聽sidemenu postopen事件 – Dan 2015-02-09 02:55:49

+0

您是否檢查了創建偵聽器的代碼是否已執行並且沒有js錯誤? – 2015-02-09 03:01:44

+0

是的 - 沒有錯誤@AndreasArgelius,你能重現你的錯誤嗎?似乎不是輔助函數在觸摸sidemenu時觸發,點擊註冊罰款和輔助功能時,點擊.... soooooo工作,onsen-ui +刷卡不聽? – Dan 2015-02-10 00:29:32