【问题标题】:Angular 2: loading different component on same route with conditions?Angular 2:在有条件的同一条路线上加载不同的组件?
【发布时间】:2018-05-14 00:11:55
【问题描述】:

有什么办法可以让我在同一条路由上加载不同的组件(在我的例子中是根路由)。

基本上我想看看用户是否登录,如果他登录了,就会加载dashboard组件,如果他没有登录,就会加载home组件

再次澄清问题,我不想使用身份验证保护将用户重定向到不同的路线。我想在同一条路线上加载不同的组件

【问题讨论】:

  • 看看Auth Guard:netbasal.com/…
  • 有些警卫可以和你一起工作。检查此链接blog.thoughtram.io/angular/2016/07/18/guards-in-angular-2.html。它可以很好地理解守卫。
  • 我使用了守卫,据我所知,顾名思义,守卫只能保护路线是否允许访问,如果不允许访问,我们可以将用户重定向到不同的路线。但是在这种情况下我不希望用户被重定向到不同的路由,但是根路由本身应该根据我的情况加载不同的组件

标签: angular angular2-routing angular-routing angular4-router


【解决方案1】:

如果您不想使用警卫,这就是您在问题中提到的, 你可以简单地使用 ngIf。

示例

<div *ngIf="this.authService.hasPermissionForDashboard()">
 <app-dashboard><app-dashboard>
</div>
<div *ngIf="this.authService.hasNotPermissionForDashboard()">
 <app-home><app-home>
</div>

【讨论】:

  • 我也想过这个,但认为一定有更好的方法。假设没有其他“标准”方式。我可以摆脱这个。谢谢
猜你喜欢
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
  • 2017-06-15
  • 1970-01-01
  • 2017-02-02
  • 2016-11-02
相关资源
最近更新 更多