Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Ionic 4路由器以编程方式销毁页面_Angular_Ionic Framework_Ionic4_Angular Router - Fatal编程技术网

Angular Ionic 4路由器以编程方式销毁页面

Angular Ionic 4路由器以编程方式销毁页面,angular,ionic-framework,ionic4,angular-router,Angular,Ionic Framework,Ionic4,Angular Router,我的应用程序上有一个注册流。在每一步中,我都不希望用户能够进入上一页,但是,ionic会让这些页面保持“活动”,用户可以通过从左向右滑动或使用手机上的后退按钮返回 我使用爱奥尼亚的路由系统转换每个用户: this.router.navigateByUrl('/invite'); 我也试过: this.router.navigate(['/invite']); 以及: 目前它给我带来了很多问题,我在谷歌上搜索了很多次,都找不到任何解决方案 有没有办法使用爱奥尼亚的路由器系统来破坏一个页面或

我的应用程序上有一个注册流。在每一步中,我都不希望用户能够进入上一页,但是,ionic会让这些页面保持“活动”,用户可以通过从左向右滑动或使用手机上的后退按钮返回

我使用爱奥尼亚的路由系统转换每个用户:

 this.router.navigateByUrl('/invite');
我也试过:

 this.router.navigate(['/invite']);
以及:

目前它给我带来了很多问题,我在谷歌上搜索了很多次,都找不到任何解决方案


有没有办法使用爱奥尼亚的路由器系统来破坏一个页面或禁止在某些页面上进行反向导航?任何建议都很好。谢谢。

您可以使用
路线守卫

这是一个很好的例子

路由模块中
添加

const myRoutes: Routes = [
  { path: '', component: yourHomeComponent },
  { path: 'dashboard',
    component: anyComponentComponent,
    canActivate: [CanActivateRouteGuard]
  }
];
让你的简单路线变得简单

import { Injectable } from '@angular/core';
import { CanActivate,
         ActivatedRouteSnapshot,
         RouterStateSnapshot } from '@angular/router';

import { MyAuthService } from './auth.service';

@Injectable()
export class _CanActivateRouteGuard implements CanActivate {

  constructor(private auth: MyAuthService) {}

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
      return this.auth.isUserAuthenticated();
  }
}

你必须使用离子导航,他们提供的功能

在构造函数中注入navController

  constructor(
    private navCtrl: NavController,
  ) {
  }
然后使用navigateroot,它将销毁上一页

this.navCtrl.navigateRoot('/home', { animated: true, animationDirection: 'forward' });
浏览下面的文档


您可能已经解决了这个问题,但是您也可以使用以下方法:

this.router.navigateByUrl('/invite',{
 replaceUrl : true
});

我认为它可以与skipLocationChange一起使用,但不能从根页面使用。因此,从根目录导航到另一个路由,然后从那时起,历史记录将被替换DNAVController已弃用
this.router.navigateByUrl('/invite',{
 replaceUrl : true
});