在AngularJS中,ui-router允许我们使用状态(如此示例Angular UI Router: Different states with same URL?)来使用相同路由的2个组件。
在Angular 2中是否有可能实现相同的行为?如果可能的话,您能否提供一些示例或解决方法的链接?
这里的用例类似于Facebook或Twitter,其中URL保持不变,但内容会根据您是否已登录而变化。
到目前为止,我唯一想到的实现方法是在“父”模板中使用*ngIf来选择两个“子”组件之一的选择器。类似于以下内容:
<home-logged-in *ngIf="authenticated()"></home-logged-in>
<home-logged-out *ngIf="!authenticated()"></home-logged-out>
有没有推荐的方法来做这件事?
谢谢。
请求 '/home'; 如果 (已认证 == true): 跳转到 'authenticated_home' 组件 否则: 跳转到 'public_home' 组件
- dem00n*ngIf
是一个不错的解决方法。如果为已登录用户传递了路由但用户未登录(或反之亦然),那么使用不同的路由并自动重定向到另一个变体怎么样?就像这里所解释的那样:http://www.captaincodeman.com/2016/03/31/angular2-route-security/ - Günter ZöchbauerComponentA
且用户已经登录时,插入ComponentALoggedIn
。这样,你就得到了一个通用的解决方案。 - Günter Zöchbauer