Menu 禁用侧菜单';s滑动以打开Ionic 2中登录页面(或任何页面)的手势
我是爱奥尼亚2&Angular2的新手,我用以下命令下载了一个新的爱奥尼亚模板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
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)