Jestem nowy na jońskich 2 & Angular2 i Pobrałem nowy szablon Ionic pomocą następującego poleceniaWyłącz menu bocznym za bezstykowa otworzyć gest strony logowania (lub dowolnej strony) w jońskich 2
Ionic start appname sidemenu --v2 --ts
Do tego konkretnego rozwiązania dodałem stronę logowania, aby zweryfikować użytkownika. Po pomyślnym sprawdzeniu użytkownik zostanie przekierowany na stronę menu, która korzysta z menu bocznego.
Ponieważ rozwiązanie jest oparte na szablonie sidemenu
, menu boczne jest wyświetlane na stronie logowania, gdy użytkownik przesuwa się w lewo.
Ktoś może mi pomóc, aby naprawić ten błąd i wyłączyć wyświetlanie menu bocznego, gdy widok jest przesunięty.
Mój kod
App.ts złożyć
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);
}
}
app.html plikowi
<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 plików (strona logowania w tym przypadku).
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;
}
}
Dla każdego, kto ma kłopot z uruchomieniem operacji SwipeEnable (false), prawdopodobnie jest tak, ponieważ menu nie zostało jeszcze zainicjalizowane. Jeśli spróbujesz to zrobić na szablonie Hello Ionic, to nie będzie działać w konstruktorze, ale będzie wewnątrz bloku 'platform.ready(). Then' blok – Todd
Mam taką samą sytuację jak pytający, zrobiłem mój kod jak twoja odpowiedź . Ale po zalogowaniu przechodzę do strony A, ale nie ma tam ikony paska menu. Następnie przesuwam się, aby otworzyć listę menu, ponownie kliknę tę stronę, a następnie nagle pojawia się ikona paska menu. Wstawiłem ten kontroler 'this.menu.swipeEnable (false);' in Page A. Z góry dziękuję. –
ionViewDidLoad() { this.menu.swipeEnable (false, 'left'); } – Christer