禁止使用刷卡时卡查看sidemenu [英] Disable swipe to view sidemenu when using tabs

查看:133
本文介绍了禁止使用刷卡时卡查看sidemenu的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在写一个小程序离子,并有一个问题。我使用的是sidemenu,也是标签。我有我的观点之一的离子幻灯片中,当我擦拭从左至右侧面菜单滑出此slidebox。我已经通过离子论坛各项相关主题的阅读,但没有工作过。

我试着加入拖含量=false的各种标签,也加入 $ ionicSideMenuDelegate.canDragContent(假); 我的控制器。

但是都没有成功。我想这是因为我使用的是sidemenu,在选项卡的标签和视图。我的继承人code:

index.html的

 <离子侧菜单>    <! - 标题栏 - >
    <离子侧面菜单内容NG控制器=NavCtrl拖含量=false的>
        <离子导航栏类=扎阳>
            <离子NAV-后退按钮类=按钮图标离子ios7箭头回>
            < /离子NAV-后退按钮>
        < /离子导航栏>        <! - 页面内容 - >
        <离子NAV-视图中拖动内容=false的动画=滑 - 左 - 右>< /离子NAV-视图>
    < /离子侧面菜单内容>    <! - 侧菜单 - >
    <离子侧面菜单侧=左级=侧面菜单>
        <离子头吧级=酒吧酒吧标题栏暗>
            < H1类=标题>菜单< / H1>
        < /离子头吧>
        <离子含量有头=真正的>            < D​​IV NG-IF =authData.twitter级=已登录的用户逐项-阿凡达>
                < IMG NG-SRC ={{authData.twitter.cachedUserProfile.profile_image_url}}/>
                < H2>您好,{{authData.twitter.displayName}}< / H>
                < P>通过Twitter和LT已登录; / P>
            < / DIV>            < D​​IV NG-IF =authData.facebook级=已登录的用户逐项-阿凡达>
                < IMG NG-SRC ={{authData.facebook.cachedUserProfile.picture.data.url}}/>
                < H2>您好,{{authData.facebook.displayName}}< / H>
                < P>通过Facebook和LT已登录; / P>
            < / DIV>            < UL类=清单>
                <立GT;
                    <一类=项项图标左菜单关闭导航清晰的href =#/场地>
                        < I类=图标离子ios7地点>< I&GT /;地点
                    &所述; / A>
                < /李>
                <立GT;
                    <一类=项项图标左菜单关闭导航清晰的href =#/午餐>
                        < I类=图标离子比萨>< / I>午餐
                    &所述; / A>
                < /李>
                <立GT;
                    <一类=项项图标左菜单关闭导航清晰的href =#/ WIFI>
                        < I类=图标离子的WiFi>< I&GT /;无线上网
                    &所述; / A>
                < /李>
            < / UL>
        < /离子含量>
        <离子躯杆类=吧吧暗>
            <按钮类=按钮按钮图标图标离子注销菜单导航密切清晰NG控制器=LoginCtrlNG点击=退出()>注销< /按钮>
        < /离子页脚酒吧>
    &所述; /离子侧菜单>  < /离子侧菜单>

和我的观点:

 <离子视图标题=议程>
<离子含量拖含量=false的>
    <离子滑动盒上滑动改变=slideHasChanged($指数)>
        <离子幻灯片>
            < D​​IV CLASS =头卡头卡 - 图像>
                < D​​IV CLASS =叠加>
                    < D​​IV CLASS =项项文本换行>
                        < H3类=头-card__heading>接着&LT发生的; / H3 GT&;
                        < IMG NG-SRC =IMG / me.jpeg级=头-card__avatar/>
                        < H2类=头-card__heading>一些人< / H>
                        < p =类头-card__text>有的标题< / P>
                    < / DIV>
                < / DIV>
            < / DIV>
        < /离子幻灯片>
        <离子幻灯片>
            < D​​IV CLASS =头卡头卡 - 图像>
                < D​​IV CLASS =叠加>
                    < D​​IV CLASS =项项文本换行>
                        < H3类=头-card__heading>接下来会< / H3 GT&;
                        < IMG NG-SRC =IMG / me.jpeg级=头-card__avatar/>
                        < H2类=头-card__heading>有的人< / H>
                        < p =类头-card__text>慢慢地接管世界< / P>
                    < / DIV>
                < / DIV>
            < / DIV>
        < /离子幻灯片>
    < /离子滑动盒>
    <离子列表>
        <离子项目NG重复=(ID,agendaItem)在agendaItemsTYPE =项目文本换行的href =#/标签/ agendaItem / {{agendaItem的$ id}}级=项项-avatar项目与 - 网格>
            < IMG NG-SRC ={{agendaItem.image}}>
            &所述p为H.; {{agendaItem.startTime}}&下;我纳克-如果=agendaItem.hasNotificationSet ==真类=图标左离子ios7钟>&下; / I GT;&下; / P>
            < H2> {{agendaItem.title}}< / H>
            &所述p为H.; {{agendaItem.speaker}}&下; / P>
            <离子选项按钮纳克级=agendaItem.hasNotificationSet按钮平衡图标离子ios7铃:按钮阳性图标离子ios7-钟纲要NG控制器=NotificationCtrlNG - 点击=添加(agendaItem)>< /离子选项按钮>            <! - <离子选项按钮NG点击=getNotificationIds()>< /离子选项按钮> - >
        < /离子项目>
    < /离子列表>
< /离子含量>

和我的控制器:

  .controller('AgendaCtrl',函数($范围,AgendaFactory,$ ionicSideMenuDelegate,$ rootScope,$ ionicPopup,$超时,$ cordovaLocalNotification,NotificationFactory){    $ ionicSideMenuDelegate.canDragContent(假); //似乎不工作    变种agendaItems = AgendaFactory.getAgenda();    //循环议程itens,并检查有哪些设置的通知
    agendaItems。$()加载,然后(功能(阵列){
        angular.forEach(阵列功能(值,键){        如果(NotificationFactory.isNotificationScheduled(value.notificationId)==真){
                value.hasNotificationSet =真;
        }其他{
                value.hasNotificationSet = FALSE;
        }    });    $ scope.getNotificationIds =功能(){
        $ cordovaLocalNotification.getScheduledIds()。然后(功能(scheduledIds){
          的console.log(scheduledIds);
        });
      };        $ scope.agendaItems = agendaItems;
    });    $ scope.firstTimeLogin = $ rootScope.firstTimeLogin;})


解决方案

我使用的是这样的事情在我的应用程序:

  .controller('AgendaCtrl',函数($范围,$ ionicSideMenuDelegate){
  ($范围。在$('$ ionicView.enter',功能){
      $ ionicSideMenuDelegate.canDragContent(假);
    });
  ($范围。在$('$ ionicView.leave',功能){
      $ ionicSideMenuDelegate.canDragContent(真);
    });
})

现在,当你离开的看法是可拖动一次。

I'm writing a small ionic app and have an issue. I'm using a sidemenu and also tabs. I have an ionic slide-box in one of my views, when I wipe this slidebox from left to right the side menu slides out. I've read through various related topics on the ionic forum but none have worked.

I've tried adding drag-content="false" to various tags and also added $ionicSideMenuDelegate.canDragContent(false); to my controller.

Neither worked. I think it's because I'm using a sidemenu, with tabs and views in the tabs. Heres my code:

index.html

    <ion-side-menus>

    <!-- Header bar -->
    <ion-side-menu-content ng-controller="NavCtrl" drag-content="false">
        <ion-nav-bar class="bar-positive">
            <ion-nav-back-button class="button-icon ion-ios7-arrow-back">
            </ion-nav-back-button>
        </ion-nav-bar>

        <!-- Page content -->
        <ion-nav-view drag-content="false" animation="slide-left-right"></ion-nav-view>
    </ion-side-menu-content> 

    <!-- Side menu -->
    <ion-side-menu side="left" class="side-menu">
        <ion-header-bar class="bar bar-header bar-dark">
            <h1 class="title">Menu</h1>
        </ion-header-bar>
        <ion-content has-header="true">

            <div ng-if="authData.twitter" class="logged-in-user item item-avatar">
                <img ng-src="{{authData.twitter.cachedUserProfile.profile_image_url}}"/>
                <h2>Hello, {{authData.twitter.displayName}}</h2>
                <p>Logged in via Twitter</p>
            </div>

            <div ng-if="authData.facebook" class="logged-in-user item item-avatar">
                <img ng-src="{{authData.facebook.cachedUserProfile.picture.data.url}}"/>
                <h2>Hello, {{authData.facebook.displayName}}</h2>
                <p>Logged in via Facebook</p>
            </div>

            <ul class="list">
                <li>
                    <a class="item item-icon-left" menu-close nav-clear href="#/venue">
                        <i class="icon ion-ios7-location"></i>Venue
                    </a>
                </li>
                <li>
                    <a class="item item-icon-left" menu-close nav-clear href="#/lunch">
                        <i class="icon ion-pizza"></i>Lunch
                    </a>
                </li>
                <li>
                    <a class="item item-icon-left" menu-close nav-clear href="#/wifi">
                        <i class="icon ion-wifi"></i>Wifi
                    </a>
                </li>
            </ul>
        </ion-content>
        <ion-footer-bar class="bar bar-dark">
            <button class="button button-icon icon ion-log-out menu-close nav-clear" ng-controller="LoginCtrl" ng-click="logout()"> Logout</button>
        </ion-footer-bar>
    </ion-side-menu>  

  </ion-side-menus>

and my view:

<ion-view title="Agenda">
<ion-content drag-content="false">
    <ion-slide-box on-slide-changed="slideHasChanged($index)">
        <ion-slide>
            <div class="header-card header-card--image">
                <div class="overlay">
                    <div class="item item-text-wrap">
                        <h3 class="header-card__heading">Happening now</h3>
                        <img ng-src="img/me.jpeg" class="header-card__avatar"/>
                        <h2 class="header-card__heading">some guy</h2>
                        <p class="header-card__text">Some title</p>
                    </div>
                </div>
            </div>
        </ion-slide>
        <ion-slide>
            <div class="header-card header-card--image">
                <div class="overlay">
                    <div class="item item-text-wrap">
                        <h3 class="header-card__heading">Coming Next</h3>
                        <img ng-src="img/me.jpeg" class="header-card__avatar"/>
                        <h2 class="header-card__heading">Some guy</h2>
                        <p class="header-card__text">Slowly taking over the world</p>
                    </div>
                </div>
            </div>
        </ion-slide>
    </ion-slide-box>
    <ion-list>
        <ion-item ng-repeat="(id,agendaItem) in agendaItems" type="item-text-wrap" href="#/tab/agendaItem/{{agendaItem.$id}}" class="item item-avatar item-with-grid">
            <img ng-src="{{agendaItem.image}}">
            <p>{{agendaItem.startTime}} <i ng-if="agendaItem.hasNotificationSet == true" class="icon-left ion-ios7-bell"></i></p>
            <h2>{{agendaItem.title}}</h2>
            <p>{{agendaItem.speaker}}</p>
            <ion-option-button ng-class="agendaItem.hasNotificationSet ? 'button-balanced icon ion-ios7-bell' : 'button-positive icon ion-ios7-bell-outline'" ng-controller="NotificationCtrl" ng-click="add(agendaItem)"></ion-option-button>

            <!--<ion-option-button ng-click="getNotificationIds()"></ion-option-button>-->
        </ion-item>
    </ion-list>
</ion-content>

and my controller:

.controller('AgendaCtrl', function($scope, AgendaFactory, $ionicSideMenuDelegate, $rootScope, $ionicPopup, $timeout, $cordovaLocalNotification, NotificationFactory) {

    $ionicSideMenuDelegate.canDragContent(false); // doesn't seem to work

    var agendaItems = AgendaFactory.getAgenda();

    // Loop through agenda itens and check which have notifications set
    agendaItems.$loaded().then(function(array) {
        angular.forEach(array, function(value, key) {

        if (NotificationFactory.isNotificationScheduled(value.notificationId) == true) {
                value.hasNotificationSet = true;
        } else {
                value.hasNotificationSet = false;
        }

    });

    $scope.getNotificationIds = function () {
        $cordovaLocalNotification.getScheduledIds().then(function (scheduledIds) {
          console.log(scheduledIds);
        });
      };

        $scope.agendaItems = agendaItems;
    });

    $scope.firstTimeLogin = $rootScope.firstTimeLogin;

})

解决方案

I'm using something like this on my app:

.controller('AgendaCtrl', function($scope, $ionicSideMenuDelegate){
  $scope.$on('$ionicView.enter', function(){
      $ionicSideMenuDelegate.canDragContent(false);
    });
  $scope.$on('$ionicView.leave', function(){
      $ionicSideMenuDelegate.canDragContent(true);
    });
})

now, when you leave the view it's draggable again.

这篇关于禁止使用刷卡时卡查看sidemenu的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆