如何隐藏 app.component.html 中的导航栏并在登录后显示

丽娜

在我的 app.component.html 中,我有我的导航栏和路由器插座。我想从登录页面隐藏导航栏并在登录后显示它。我使用 angular-2/jwt 助手来检查本地存储中是否有可用的令牌,并根据返回值从登录页面隐藏导航栏。但登录后导航栏没有显示请帮助我。提前谢谢

app.component.ts
================

ngOnInit() { 
  this.authservice.userLoggedIn()
  }



login-service.ts
================


import { Http, Headers } from '@angular/http';
import { Injectable } from '@angular/core';
import {JwtHelper, tokenNotExpired } from 'angular2-jwt'
import 'rxjs/add/operator/map';

@Injectable()
export class LoginService {
  authToken: any[];
  user: any[];

  constructor(private http: Http) { }
  authenticateUser(user) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    return this.http.post('http://localhost:8080/users/authenticate',user,{headers:headers})
   
     .map(res=>res.json());
 }
 storeUserData(token,user){
localStorage.setItem('id_token',token);
localStorage.setItem('user',JSON.stringify(user));
this.authToken=token;
this.user=user;
 }

  userLoggedIn(){

return tokenNotExpired();
 }

}




login.ts
========

 onSubmit(form:NgForm){
    const user=
    {
      username:form.value.username,
      password:form.value.password
    }
    this.authservice.authenticateUser(user).subscribe(data=>{
      if(data.success){
      
        this.invalidlogin=false;
        this.authservice.storeUserData(data.token,data.user)
        this.authservice.userLoggedIn();
        this.router.navigate(['dashboards/dashboard',data.token])
      }
    else{
     this.invalidlogin=true;
     
      // this.router.navigate(['/']);
    }
   

    })
  }
app.component.html
==================

 <div class="bg-dark" *ngIf=" authservice.userLoggedIn()&& (layout == 'empty-view-1')"></div>
<sample-modals *ngIf=" authservice.userLoggedIn()&& (controller == 'notifications' && view == 'modals') "></sample-modals>
<right-sidebar-1 *ngIf=" authservice.userLoggedIn()&&  (layout == 'default-sidebar-1' || layout == 'collapsed-sidebar-1' || layout == 'off-canvas-1' || layout == 'sidebar-over-1' || layout == 'top-navigation-1' || layout == 'top-navigation-2')"></right-sidebar-1>
<navbar-1 *ngIf=" authservice.userLoggedIn()&& (layout == 'default-sidebar-1' || layout == 'collapsed-sidebar-1' || layout == 'off-canvas-1' || layout == 'sidebar-over-1' || layout == 'top-navigation-1' || layout == 'top-navigation-2')"></navbar-1>
<top-navigation-1 *ngIf=" authservice.userLoggedIn()&&  (layout == 'top-navigation-1')"></top-navigation-1>
<jumbotron-2 *ngIf=" authservice.userLoggedIn()&&  (layout == 'top-navigation-2')"></jumbotron-2>
<top-navigation-2 *ngIf=" authservice.userLoggedIn()&& (layout == 'top-navigation-2')"></top-navigation-2>
<div class="container-fluid">
    <div class="row">
			 <div class="left-sidebar-placeholder" *ngIf="authservice.userLoggedIn()&&  (layout == 'default-sidebar-1' || layout == 'collapsed-sidebar-1' || layout == 'off-canvas-1' || layout == 'sidebar-over-1' || layout == 'top-navigation-1' || layout == 'top-navigation-2')"></div>
			<left-sidebar-1 *ngIf=" authservice.userLoggedIn()&& ( layout == 'default-sidebar-1' || layout == 'collapsed-sidebar-1' || layout == 'off-canvas-1' || layout == 'sidebar-over-1' || layout == 'top-navigation-1' || layout == 'top-navigation-2')"></left-sidebar-1> 
			<div class="col main">
			 <jumbotron-1 *ngIf=" authservice.userLoggedIn()&& ( controller != 'dashboards' && (layout == 'default-sidebar-1' || layout == 'collapsed-sidebar-1' || layout == 'off-canvas-1' || layout == 'sidebar-over-1' || layout == 'top-navigation-1'))"></jumbotron-1> 
				<div class="page">
						<router-outlet></router-outlet>
				</div>
			</div>
	</div>
</div>
<backdrops></backdrops>

在此处输入图片说明

在此处输入图片说明

用户4676340

我为这种情况所做的(对我来说看起来更容易)是这种结构

AppComponent
LoginComponent
Guarded/
    MainView/
    MainViewComponent
        RandomComponent
  1. 您的 AppComponent 有一个路由器插座
  2. 默认路由是 LoginComponent
  3. 连接后,您将用户发送到另一条路线,比如说/connected,受到保护
  4. 这会将用户发送到 MainViewComponent
  5. MainViewComponent 有导航栏和路由器插座
  6. 默认路由是你想要的组件。

通过这种方式,您可以清楚地分离已记录/未记录的组件,并且您不必使用条件来显示/隐藏页面中的某些组件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何让 Angular 再次读取 app.component.html

来自分类Dev

如何解决:app / app.component.html:15:1中的错误,原因是:RouterOutletMap没有提供者

来自分类Dev

如何在正确的登录凭据上取消隐藏或显示html中的预隐藏菜单?

来自分类Dev

动态更改app.component中的HTML元素

来自分类Dev

在Angular中是否可以将我的<app-custom-component> </ app-custom-component>设为html标签?

来自分类Dev

如何隐藏html中的复选框?

来自分类Dev

如何隐藏很长的html表中的列

来自分类Dev

如何在html中隐藏按钮?

来自分类Dev

如何在html中隐藏按钮?

来自分类Dev

如何在html中隐藏行

来自分类Dev

如何取消html模板中的隐藏指令?

来自分类Dev

如何隐藏 HTML 表格中的列

来自分类Dev

Joomla SEF-如何从地址栏中隐藏.html?

来自分类Dev

在Firefox中添加JQuery datepicker后如何隐藏HTML日历?

来自分类Dev

如何使用条件语句显示/隐藏车把中的html元素

来自分类Dev

如何使用条件语句显示/隐藏车把中的html元素

来自分类Dev

如何根据选择隐藏和显示 HTML 中的字段

来自分类Dev

隐藏导航栏后在Android KitKat上显示导航栏

来自分类Dev

登录前如何在Windows启动时运行App.exe?(登录前执行WinForm并在登录后为Interact显示执行后的表单=显示GUI)

来自分类Dev

Angular 2:例外:app.component.html:1:108 中的错误由:太多递归引起

来自分类Dev

如何在iPad的AppStore中隐藏iPhone App

来自分类Dev

用户登录后如何修改导航栏?

来自分类Dev

登录后如何动态更改导航栏

来自分类Dev

如何隐藏HTML按钮

来自分类Dev

如何隐藏HTML按钮

来自分类Dev

如何隐藏HTML注释

来自分类Dev

如何隐藏html元素?

来自分类Dev

使用BootStrap 3导航栏项目时如何在HTML中显示div内容

来自分类Dev

使用BootStrap 3导航栏项时如何在HTML中显示div内容

Related 相关文章

  1. 1

    如何让 Angular 再次读取 app.component.html

  2. 2

    如何解决:app / app.component.html:15:1中的错误,原因是:RouterOutletMap没有提供者

  3. 3

    如何在正确的登录凭据上取消隐藏或显示html中的预隐藏菜单?

  4. 4

    动态更改app.component中的HTML元素

  5. 5

    在Angular中是否可以将我的<app-custom-component> </ app-custom-component>设为html标签?

  6. 6

    如何隐藏html中的复选框?

  7. 7

    如何隐藏很长的html表中的列

  8. 8

    如何在html中隐藏按钮?

  9. 9

    如何在html中隐藏按钮?

  10. 10

    如何在html中隐藏行

  11. 11

    如何取消html模板中的隐藏指令?

  12. 12

    如何隐藏 HTML 表格中的列

  13. 13

    Joomla SEF-如何从地址栏中隐藏.html?

  14. 14

    在Firefox中添加JQuery datepicker后如何隐藏HTML日历?

  15. 15

    如何使用条件语句显示/隐藏车把中的html元素

  16. 16

    如何使用条件语句显示/隐藏车把中的html元素

  17. 17

    如何根据选择隐藏和显示 HTML 中的字段

  18. 18

    隐藏导航栏后在Android KitKat上显示导航栏

  19. 19

    登录前如何在Windows启动时运行App.exe?(登录前执行WinForm并在登录后为Interact显示执行后的表单=显示GUI)

  20. 20

    Angular 2:例外:app.component.html:1:108 中的错误由:太多递归引起

  21. 21

    如何在iPad的AppStore中隐藏iPhone App

  22. 22

    用户登录后如何修改导航栏?

  23. 23

    登录后如何动态更改导航栏

  24. 24

    如何隐藏HTML按钮

  25. 25

    如何隐藏HTML按钮

  26. 26

    如何隐藏HTML注释

  27. 27

    如何隐藏html元素?

  28. 28

    使用BootStrap 3导航栏项目时如何在HTML中显示div内容

  29. 29

    使用BootStrap 3导航栏项时如何在HTML中显示div内容

热门标签

归档