然后检查您的发票页是否已经在NavControllers堆栈上,并弹出它(如果它已经存在于NavControllers堆栈中)或推送它的新实例(如果它不存在于NavControllers堆栈中)。
执行此操作的方法的代码可能如下所示(假设
this.navCtrl
保存一个navcontroller实例,可以找到有关注入它的更多信息
here
):
moveTo(pageToMoveTo: Page): void {
let views = this.navCtrl.getViews();
let viewToMoveTo = views.find((viewController) => viewController.instance instanceof pageToMoveTo);
if (viewToMoveTo === undefined) {
//If the page is not yet on the navControllers stack, push it
this.navCtrl.push(pageToMoveTo);
} else {
//If the page is on the stack, find the pages index
let indexToMoveTo = this.navCtrl.getByIndex(viewToMoveTo.index);
//And pop to this index
this.navCtrl.popTo(indexToMoveTo);
}
}
在HTML中,您应该可以这样使用它:
<ion-item class="DropDown-Expand" menuClose (click)="moveTo(page.StatacPage)">
<ion-icon name="document"></ion-icon><span>Ledger</span>
</ion-item>
有关导航控制器工作方式的更多信息,请参阅
NavControllers docs
.