Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Menu 禁用侧菜单';s滑动以打开Ionic 2中登录页面(或任何页面)的手势_Menu_Angular_Ionic2 - Fatal编程技术网

Menu 禁用侧菜单';s滑动以打开Ionic 2中登录页面(或任何页面)的手势

Menu 禁用侧菜单';s滑动以打开Ionic 2中登录页面(或任何页面)的手势,menu,angular,ionic2,Menu,Angular,Ionic2,我是爱奥尼亚2&Angular2的新手,我用以下命令下载了一个新的爱奥尼亚模板 Ionic start appname sidemenu --v2 --ts 对于这个特定的解决方案,我添加了一个登录页面来验证用户。验证成功后,用户将被导航到使用侧菜单的菜单页面 由于解决方案基于侧菜单模板,因此只要用户向左滑动,侧菜单就会显示在登录页面上 因此,请有人指导我纠正这个错误,并停止侧菜单显示时,视图被刷 我的代码 App.ts文件 import {App, IonicApp, Platform,M

我是爱奥尼亚2&Angular2的新手,我用以下命令下载了一个新的爱奥尼亚模板

 Ionic start appname sidemenu --v2 --ts
对于这个特定的解决方案,我添加了一个登录页面来验证用户。验证成功后,用户将被导航到使用侧菜单的菜单页面

由于解决方案基于
侧菜单
模板,因此只要用户向左滑动,侧菜单就会显示在登录页面上

因此,请有人指导我纠正这个错误,并停止侧菜单显示时,视图被刷

我的代码

App.ts文件

import {App, IonicApp, Platform,MenuController} from 'ionic-angular';
import {StatusBar} from 'ionic-native';
import {HelloIonicPage} from './pages/hello-ionic/hello-ionic';
import {ListPage} from './pages/list/list';
import {HomePage} from './pages/home/home';


@App({
  templateUrl: 'build/app.html',
  config: {} // http://ionicframework.com/docs/v2/api/config/Config/
})
class MyApp {
  // make HelloIonicPage the root (or first) page
  rootPage: any = HomePage;
  pages: Array<{title: string, component: any}>;

  constructor(
    private app: IonicApp,
    private platform: Platform,
    private menu: MenuController
  ) {
    this.initializeApp();

    // set our app's pages
    this.pages = [
      { title: 'Hello Ionic', component: HelloIonicPage },
      { title: 'My First List', component: ListPage }
    ];
  }

  initializeApp() {
    this.platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      StatusBar.styleDefault();
    });
  }

  openPage(page) {
    // close the menu when clicking a link from the menu
    this.menu.close();
    // navigate to the new page if it is not the current page
    let nav = this.app.getComponent('nav');
    nav.setRoot(page.component);
  }
}

我认为在ionic 1中使用了
拖动内容
指令,对于ionic 2,您可以在页面类文件中禁用它

您可以通过从
ionic angular
导入
MenuController
提供程序,然后调用
.swipeneable(shouldenablebolean,menuId)
方法来禁用页面类中的滑动手势(这也有文档记录)

您的登录控制器应该是这样的

import {Page, MenuController} from 'ionic-angular';

@Page({
    templateUrl: 'build/pages/home/home.html'
})
export class HomePage {
    constructor(public menu: MenuController) {
        this.menu.swipeEnable(false);
    }
}
this.menu.swipeEnable(false, `menuId`);
如果你有多个菜单,并且每个菜单都有一个id,那么你可以像这样瞄准一个特定的菜单

import {Page, MenuController} from 'ionic-angular';

@Page({
    templateUrl: 'build/pages/home/home.html'
})
export class HomePage {
    constructor(public menu: MenuController) {
        this.menu.swipeEnable(false);
    }
}
this.menu.swipeEnable(false, `menuId`);

您可以在任何页面的任何时间通过调用

$ionicSideMenuDelegate.canDragContent(false)

e、 g:

角度.module('ABC').controller('xyzCtrl',function($scope,$ionicSideMenuDelegate){


}))

对于任何无法使Swipenable(false)正常工作的人来说,这可能是因为您的菜单尚未初始化。如果您尝试在Hello-Ionic模板上执行此操作,它在构造函数中不起作用,但在
platform.ready()中会起作用。然后
block我遇到了与提问者相同的情况,我按照您的答案编写了代码。但是,登录后我导航到A页,但它没有菜单栏图标。然后,我滑动打开菜单列表,我再次点击那个页面,然后突然它有了菜单栏图标。我把这个
this.menu.swipeanable(false)放进去页面。提前感谢.ionViewDidLoad(){this.menu.swipeEnable(false,'left');}对于向下的投票者。。。在回答这个问题时,这是一个有效的解决方案,因此,与其只是否决投票,不如用最新的解决方案编辑我的答案,这样对其他人会有帮助:)如果我从某个角落刷卡,实际上可以刷卡!我想从页面上的每个地方滑动打开菜单。除了添加swipeleft事件,还有其他方法吗@威尔,哈里斯
$ionicSideMenuDelegate.canDragContent(false)