Sono nuovo di ionica 2 & Angular2 e ho scaricato un nuovo modello ionico con il seguente comandoDisabilitare colpo del menu laterale per aprire gesto per la pagina di Accesso (o qualsiasi pagina) in ionica 2
Ionic start appname sidemenu --v2 --ts
Per questa particolare soluzione ho aggiunto una pagina di accesso per convalidare un utente. Una volta che la convalida ha esito positivo, l'utente verrà indirizzato alla pagina del menu che utilizza il menu laterale.
Poiché la soluzione è basata sul modello sidemenu
, il menu laterale viene visualizzato sulla pagina di accesso ogni volta che l'utente scorre verso sinistra.
Quindi qualcuno può guidarmi per correggere questo errore e interrompere la visualizzazione del menu laterale quando la vista viene trascinata.
Il mio codice
App.ts il file
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);
}
}
file di app.html
<ion-menu side-menu-content drag-content="false" [content]="content">
<ion-toolbar>
<ion-title>Pages</ion-title>
</ion-toolbar>
<ion-content>
<ion-list>
<button ion-item *ngFor="#p of pages" (click)="openPage(p)">
{{p.title}}
</button>
</ion-list>
</ion-content>
</ion-menu>
<ion-nav id="nav" [root]="rootPage" #content swipe-back-enabled="false"></ion-nav>
Homepage.ts file (pagina di login in questo caso).
import {Page, Events,Alert,NavController,Loading,Toast,Storage,LocalStorage,SqlStorage} from 'ionic-angular';
import { FORM_DIRECTIVES, FormBuilder, ControlGroup, Validators, AbstractControl } from 'angular2/common';
import {HelloIonicPage} from '../hello-ionic/hello-ionic';
import {NgZone} from 'angular2/core';
@Page({
templateUrl: 'build/pages/home/home.html'
})
export class HomePage {
public Uname :string;
public usrvalid:boolean;
public usrpwd :boolean;
public usrpwdlength:boolean;
public usrvalidlength:boolean;
public isUnchanged:boolean;
public usrpwdzero:boolean;
public usrvaliddigits:boolean;
rootpage:any;
public Upwd:string;
constructor(public nav:NavController) {
this.nav=nav;
this.isUnchanged=true;
var mediumRegex = new RegExp("^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})");
// rootPage: any = HomePage;
}
}
Per chi ha problemi a far funzionare swipeEnable (false), è probabile che il menu non sia stato ancora inizializzato. Se provi a farlo nel modello Hello Ionic, non funzionerà nel costruttore ma all'interno del blocco 'platform.ready(). Then' – Todd
Sto avendo la stessa situazione del questionario, ho fatto il mio codice come la tua risposta . Ma, dopo il login, navigo alla pagina A, ma non ha l'icona della barra dei menu. Poi, faccio scorrere per aprire l'elenco dei menu, faccio nuovamente clic su quella pagina, quindi improvvisamente l'icona della barra dei menu. Ho messo questo 'this.menu.swipeEnable (false);' nella pagina Un controller. Grazie in anticipo. –
ionViewDidLoad() { this.menu.swipeEnable (false, 'left'); } – Christer