1

http://codepen.io/leongaban/pen/PPLVNY?editors=101

ここに画像の説明を入力

左パネルがイオンアプリで開いているときに、フラグ変数を変更しようとしています。

これを見つけて実装してみましたが、変数が変化せ、console.log ステートメントが表示されません。

マークアップ

<script id="templates/home.html" type="text/ng-template">
  <ion-view view-title="Welcome">
    <ion-content class="padding">
      <h1>{{changeMe}}</h1>
      <p>Swipe to the right to reveal the left menu.</p>
      <p>(On desktop click and drag from left to right)</p>
    </ion-content>
  </ion-view>
</script>

コントローラ

.controller('MainCtrl', function($scope, $ionicSideMenuDelegate, $ionicPlatform) {
  $scope.changeMe = "This should change if left panel is open"
  $scope.attendees = [
    { firstname: 'Nicolas', lastname: 'Cage' },
    { firstname: 'Jean-Claude', lastname: 'Van Damme' },
    { firstname: 'Keanu', lastname: 'Reeves' },
    { firstname: 'Steven', lastname: 'Seagal' }
  ];

  $scope.toggleLeft = function() {
    $ionicSideMenuDelegate.toggleLeft();
  };

  $ionicPlatform.registerBackButtonAction(function (event) {
    $ionicSideMenuDelegate.toggleLeft();
    $ionicSideMenuDelegate.$getByHandle('sideMenu').toggleLeft();
    $timeout ( function() {
      $scope.changeMe = "CHANGED! Left panel is open!";
      console.log ("Status of SIDE MENU IS : " + $ionicSideMenuDelegate.$getByHandle('sideMenu').isOpen());
    },1000);   
  }, 100);
})

これも試しました:

.run(function($ionicPlatform, $ionicSideMenuDelegate) {
  $ionicPlatform.registerBackButtonAction(function(e) {
    e.preventDefault();
    if (!$ionicSideMenuDelegate.isOpen()) {
      console.log('isOPEN!');
    }

    if (!$ionicSideMenuDelegate.isOpenLeft()) {
      console.log('OPEN!');
      $ionicSideMenuDelegate.toggleLeft();
    } else {
      console.log('Closed!');
    }
  }, 1000);   
})
4

2 に答える 2

1

getOpenRatio働いた!isOpenうまくいかずisOpenLeft、私にとってはうまくいきませんでした。


$scope.$watch(function () {
  return $ionicSideMenuDelegate.getOpenRatio();
},
function (ratio) {
  if (ratio === 1){
    console.log('ratio is true');
    $scope.isActive= true;
  } else{
    $scope.isActive = false;
    console.log('ratio is false');
  }
});

更新:実際のアプリでも修正しました!ion-side-menus1枚じゃなくて2枚持ってました。

<ion-side-menus class="ion-home">
    <!-- <ion-side-menus enable-menu-with-back-views="false"> -->
于 2015-11-19T20:10:12.630 に答える