2017-05-23 68 views
0
<app-menu></app-menu> 
<app-menu2></app-menu2> 
<router-outlet></router-outlet> 
<app-footer></app-footer> 

需要一些邏輯,我有兩個路由器叫做<app-menu><app-menu2>使用角2中的多個路由器2

我正在開發的有登陸的應用程序。登錄後,我只想看到<app-menu2>

現在顯示兩個菜單。我想在登錄前顯示<app-menu>,登錄後顯示<app-menu2>.give我一些邏輯。

我試圖隱藏appmenus。這不起作用。請儘快給我建議。

+0

你有一個服務來處理身份驗證? – runit

+0

是的運行和我的代碼................... this.myservice.getData(this.url).subscribe((resdata)=> this.logindata = resdata);爲(令i = 0; I

+0

請編輯您的問題,幷包括您的服務實施。很難閱讀代碼中的評論 – brijmcq

回答

1

我想你應該如何看待認證工作,並嘗試建立一個服務來處理正確。當你的服務完成後,你應該有一個方法.logged()由服務公開,然後你可以在你的組件中使用它。

其實你的服務是非常不安全的,你實際上是加載所有的用戶和客戶端內的支票密碼,任何人只要有一點點的知識應該可以繞過登錄。

我建議你看看: https://auth0.com/blog/angular-2-authentication/ 和: http://jasonwatmore.com/post/2016/08/16/angular-2-jwt-authentication-example-tutorial

1

,您應該使用2個不同的網頁/模板,一個用於authed和一個不authed。

請參見:https://angular.io/docs/ts/latest/guide/router.html

{ 
     path: 'Login', 
     component: LoginComponent, 
    } 
    { 
     path: 'Authed', 
     component: YourLoggedInComponent 
     children: [ 
      { 
       path: '', 
       component: ChildComponent, 


      } 
     ] 
    } 
+0

您好瓊斯,我不明白,文檔。如果你知道任何替代文件建議我。謝謝 –

+1

即使使用* ngIf,你也不應該渲染一個組件,一旦你通過了驗證,你將用戶重定向到那個模板,你就必須分離頁面/模板,一個用於登錄頁面和一個登錄狀態有menu2組件。 – Jonas

+0

好吧,我會嘗試.. –