頁面A =登錄;Ionic2:無法從頁面A導航到頁面B,但我可以從頁面A到C,然後B
Page B =歡迎;
Page C = List;
Offending Component = DefaultPopover;
所以基本上我不能從頁面A導航到頁面B,除非我從歡迎頁面中刪除組件或從DefaultPopover註銷掉註銷功能。
相同的組件在頁面C上正常工作。如果我從頁面A - >頁面C導航,則可以導航到頁面B的罰款。在DefaultPopover中,如果我將註銷更改爲指向WelcomeController,則一切正常。我不確定發生了什麼事。
我已經包含了控制器及以下
登錄控制器
import {ToastController, NavController, List} from 'ionic-angular/index';
import {WelcomeController} from '../index';
import {Component} from '@angular/core';
import {ListController} from '../content/short_form/list/list.controller';
@Component({
templateUrl: 'build/pages/login/login.controller.html'
})
export class LoginController
{
public username : string;
public password : string;
constructor(public toast : ToastController, public navCtrl: NavController)
{
}
public checkAuth()
{
if (this.username !== 'test' && this.password !== 'test') {
this.toast.create({
showCloseButton : true,
message : 'Username and password wrong',
position : 'bottom',
closeButtonText : 'Ok',
dismissOnPageChange: true
}).present();
} else{
this.navCtrl.setRoot(WelcomeController);
}
}
}
歡迎控制器
import {Component} from '@angular/core';
import {PopoverController} from 'ionic-angular/index';
import {DefaultPopover} from '../../components/popover/default/default.popover';
@Component({
templateUrl : 'build/pages/welcome/welcome.controller.html'
})
export class WelcomeController
{
constructor(public popoverCtrl : PopoverController)
{
}
public presentPopover(event)
{
this.popoverCtrl.create(DefaultPopover, {}, {
enableBackdropDismiss : true,
showBackdrop : true
}).present({
ev : event
});
}
}
列表控制器
import {Component} from '@angular/core';
import {
ShortFormEntity,
DetailsController
} from "../index";
import {ImageService} from "../../../../components/index";
import {NavController, PopoverController} from 'ionic-angular';
import {ShortFormService} from '../services/short_form.service';
import {DefaultPopover} from '../../../../components/popover/default/default.popover';
@Component({
templateUrl : 'build/pages/content/short_form/list/list.controller.html',
providers : [ShortFormService, ImageService]
})
export class ListController
{
public list : [ShortFormEntity];
private navCtrl : NavController;
constructor(shortFormService : ShortFormService, navCtrl : NavController, public popoverCtrl: PopoverController)
{
this.list = shortFormService.shortForms;
this.navCtrl = navCtrl
}
public createShortForm()
{
this.navCtrl.push(DetailsController);
}
public openShortForm(id)
{
this.navCtrl.push(DetailsController, {
id : id
})
}
public presentPopover(event)
{
this.popoverCtrl.create(DefaultPopover, {}, {
enableBackdropDismiss : true,
showBackdrop : true
}).present({
ev : event
});
}
}
d我的離子信息輸出efaultPopover
import {Component} from '@angular/core';
import {ViewController, NavController} from 'ionic-angular/index';
import {LoginController} from '../../../pages/login/login.controller';
@Component({
templateUrl : 'build/components/popover/default/default.popover.html'
})
export class DefaultPopover
{
constructor(public viewCtrl : ViewController, public navCtrl : NavController)
{
}
close()
{
this.viewCtrl.dismiss();
}
logout()
{
this.navCtrl.setRoot(LoginController);
}
}
離子信息
Cordova CLI: 6.3.1
Ionic Framework Version: 2.0.0-beta.11
Ionic CLI Version: 2.0.0
Ionic App Lib Version: 2.0.0-beta.20
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Mac OS X El Capitan
Node Version: v4.5.0
Xcode version: Xcode 7.2.1 Build version 7C1002
編輯:
澄清@ andreaspfr的關於進口的問題。我遵循了angular2-seed範例,每個目錄都有一個可導入所有子目錄和ts文件的index.ts文件。使輸入更清潔一點。
凡頁/ index.ts看起來像
export * from './content/index';
export * from './login/index';
export * from './welcome/index';