У меня есть ионное приложение с логином / регистрацией + валидацией и дом с парой просмотров.Структура может выглядеть примерно так:
Структура просмотров
У меня нет проблем с перемещением по приложению, пока я не использую выход из системы.Когда это происходит, когда я регистрируюсь, я попадаю на страницу проверки, и когда я получаю ответ с OK с сервера, я не перенаправляюсь на домашнюю страницу.Я также получаю двойную кнопку «назад» в моих сложенных видах.
Может быть, я не чищу что-то правильно.Я не получаю никакой ошибки, просто все перестает работать правильно.Кто-нибудь может мне помочь с этой проблемой?
Сейчас я использую Ionic 3.19.1.Просто спросите, нужна ли вам дополнительная информация.
Это мой выход из системы и представление, в котором оно содержится:
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, ViewController, App } from 'ionic-angular';
import { WebSocketServiceProvider } from '../../providers/websocket-service/websocket-service';
@IonicPage()
@Component({
selector: 'page-home-popover',
templateUrl: 'home-popover.html',
})
export class HomePopoverPage {
constructor(public navCtrl: NavController, public navParams: NavParams, public viewCtrl: ViewController,
public appCtrl: App, public websocketService : WebSocketServiceProvider, public app: App) {
}
ionViewDidLoad() { }
closeMenu() {
this.viewCtrl.dismiss();
}
options(tab) {
this.closeMenu();
this.navCtrl.push('OptionsTabsPage', tab);
}
logout() {
localStorage.clear();
this.websocketService.close();
this.closeMenu();
let rootNav = this.app.getRootNav();
rootNav.setRoot('LoginPage');
}
}
sms-validation.ts
import { Component } from '@angular/core';
import { IonicPage, NavController, AlertController, App } from 'ionic-angular';
import { AuthServiceProvider } from '../../providers/auth-service/auth-service';
import { NavParams } from 'ionic-angular/navigation/nav-params';
@IonicPage()
@Component({
selector: 'page-sms-validation',
templateUrl: 'sms-validation.html',
})
export class SmsValidationPage {
validated = false;
validationCode: '';
nickname: '';
constructor(private navCtrl: NavController, private auth: AuthServiceProvider, public alertCtrl: AlertController,
public navParams: NavParams, public app: App) {
this.nickname = navParams.get('nickname');
}
public smsValidation() {
this.auth.validateCode(this.nickname, this.validationCode).subscribe(response => {
console.log('validateCode response', response);
if (response.status) {
this.validated = true;
console.log('Validated', this.validated);
localStorage.setItem("nickname", this.nickname);
this.navCtrl.setRoot('HomePage');
//this.showPopup("Success", "Account validated.");
} else {
this.showPopup("Error", "Problem validating account. " + response.message);
}
},
error => {
console.log('Error', error);
//this.showPopup("Error", error.message);
});
}
showPopup(title, text) {
console.log('showPopup', title, text, this.validated);
let alert = this.alertCtrl.create({
title: title,
subTitle: text,
buttons: [
{
text: 'OK',
handler: data => {
if (this.validated) {
this.navCtrl.setRoot('HomePage');
}
}
}
]
});
alert.present();
}
ionViewDidLoad() { }
}
app.html
<ion-nav [root]="rootPage"></ion-nav>