【发布时间】:2018-12-26 10:51:14
【问题描述】:
在我的应用程序中,我使用了 ion-back-view,我注意到后退按钮总是返回到“根”页面(加载的第一页),所以在调查代码后,我看到 router.navigate 总是设置作为第一个视图查看。
这些是来自 stack-controller.ts 的代码
StackController.prototype.insertView = function (enteringView, direction) {
// no stack
if (!this.stack) {
this.views = [enteringView];
return;
}
// stack setRoot
if (direction === 0) {
this.views = [enteringView];
return;
}
// stack
var index = this.views.indexOf(enteringView);
if (index >= 0) {
this.views = this.views.slice(0, index + 1);
}
else {
if (direction === 1) {
this.views.push(enteringView);
}
else {
this.views = [enteringView];
}
}
};
这里每个视图都设置为第一个视图,而不是添加到堆栈中,
if (direction === 0) {
this.views = [enteringView];
return;
}
那么如何从代码而不是 html (routerDirection) 向堆栈添加视图? https://forum.ionicframework.com/t/ionic-v4-routing-and-root/135439/3
【问题讨论】:
-
您正在创建自定义导航视图数组?
-
我正在尝试使用 NavController 而不是 this.router.navigate(['test]);我正在尝试使用 this.navCtrl.navigateForward(['test']);但我认为 (navCtrl) 已被弃用,我面临其他问题,当前进并返回并需要再次前进时,它不起作用。 @PareshGami
-
@PareshGami 不,我不创建自定义导航视图数组。
-
是的!在 ionic 4 中不推荐使用 navCtrl。只需要与路由器一起玩。!
-
@PareshGami 但我注意到 navController 构建在路由器 NavController.prototype.navigateForward = function (url, animated, extras) { this.setIntent(1 /* Forward */, animated); if (Array.isArray(url)) { return this.router.navigate(url, extras); } else { 返回 this.router.navigateByUrl(url, extras); } };
标签: angular ionic-framework ionic3