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

Sim*_*mon 6 ionic-framework angular angular-router ionic4

我的应用程序上有一个注册流程。在每个步骤中,我不希望用户能够转到上一页,但是,ionic 使这些页面保持“活动”状态,并且用户可以通过从左向右滑动或使用后退按钮返回他们的电话。

我使用 ionic 的路由系统转换每个用户:

 this.router.navigateByUrl('/invite');
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

 this.router.navigate(['/invite']);
Run Code Online (Sandbox Code Playgroud)

和:

 this.router.navigateByUrl('/invite', { skipLocationChange: true });
Run Code Online (Sandbox Code Playgroud)

目前它给我带来了很多问题,我已经做了很多谷歌搜索,但找不到任何解决方案。

有没有办法使用 ionic 的路由器系统来销毁页面或禁止某些页面上的向后导航?任何建议都会很棒。谢谢。

小智 10

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

this.router.navigateByUrl('/invite',{
 replaceUrl : true
});
Run Code Online (Sandbox Code Playgroud)


Cha*_*ghe 0

您可以使用route-guard

这是一个很好的例子,看看它

https://alligator.io/angular/route-guards/

在你的routing module添加中

const myRoutes: Routes = [
  { path: '', component: yourHomeComponent },
  { path: 'dashboard',
    component: anyComponentComponent,
    canActivate: [CanActivateRouteGuard]
  }
];
Run Code Online (Sandbox Code Playgroud)

让你的简单路线变得简单

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();
  }
}
Run Code Online (Sandbox Code Playgroud)