6
在angularJS中,ui-router允許我們使用兩個使用狀態相同路由的組件(如本例中的Angular UI Router: Different states with same URL?)。Angular2 - 具有相同路由的兩個組件
是否有可能在angular2中實現相同的行爲?如果可以鏈接/提供一些示例或解決方法?
這裏的用例與Facebook或Twitter類似,URL的內容保持不變,但內容會根據您是否登錄而改變。
到目前爲止,我可以考慮實現此目的的唯一方法是在'父'模板中使用* ngIf來選擇兩個「子」組件之一的選擇器。事情是這樣的:
<home-logged-in *ngIf="authenticated()"></home-logged-in>
<home-logged-out *ngIf="!authenticated()"></home-logged-out>
是否有任何建議的方式來做到這一點?
感謝
感謝您的回答,但是這並不是我所期待的。我需要的是有條件地導致2個組件的1條路徑。像這樣的僞代碼: 請求'/ home'; if(authenticated == true): 轉到'authenticated_home'組件 else 轉到'public_home'組件 – dem00n
我明白了。我很確定路由器本身不提供任何支持。我猜'* ngIf'是一個很好的解決方法。如果爲已登錄用戶傳遞路由但用戶未登錄(反之亦然),則使用不同路由並自動重定向到其他變體,如此處所述:http://www.captaincodeman.com/2016/03/31/angular2-route-security/ –
我曾考慮過,但這會改變瀏覽器中的URL,我試圖避免。現在我將與* ngIf一起去看看是否有其他人提出了替代解決方案。 – dem00n