Angular ngIf firebase身份验证指令使DOM无响应
发布时间:2020-12-17 18:06:51 所属栏目:安全 来源:网络整理
导读:我正在使用Angular的* ngIf指令来检查用户当前是否已登录.根据用户的身份验证状态(我正在使用Firebase身份验证),应显示登录按钮或用户菜单.这是代码: html的 div class="right-side" !-- Header Widget -- div class="header-widget" !-- User Menu -- div
我正在使用Angular的* ngIf指令来检查用户当前是否已登录.根据用户的身份验证状态(我正在使用Firebase身份验证),应显示登录按钮或用户菜单.这是代码:
html的 <div class="right-side"> <!-- Header Widget --> <div class="header-widget"> <!-- User Menu --> <div class="user-menu" *ngIf="afAuth.authState | async as user; else showLogin"> <div class="user-name"><span><img src="assets/images/agent-03.jpg" alt=""></span>Hi,{{ ... }}!</div> <ul> <li><a routerLink="my/profile"><i class="sl sl-icon-user"></i> My Profile</a></li> <li><a routerLink="my/bookmarks"><i class="sl sl-icon-star"></i> Bookmarks</a></li> <li><a routerLink="my/properties"><i class="sl sl-icon-docs"></i> My Properties</a></li> <li (click)="logOut()"><a routerLink="/"><i class="sl sl-icon-power"></i> Log Out</a></li> </ul> </div> <ng-template #showLogin> <a routerLink="/login-register" class="sign-in"><i class="fa fa-user"></i> Log In / Register</a> </ng-template> <a routerLink="/submit-property" class="button border">Submit Property</a> </div> <!-- Header Widget / End --> </div> .TS import { AngularFireAuth } from 'angularfire2/auth'; // ... @Component({ // ... }) export class AppComponent { constructor(public afAuth: AngularFireAuth) { } 单击时,将弹出用户菜单并显示链接列表.但是,点击This is the template I’m using后没有响应.这是菜单ul的.css代码: 的CSS .user-menu ul { float: left; text-align: left; position: absolute; top: 45px; right: 0; list-style: none; background-color: #fff; box-shadow: 0px 0px 10px 0px rgba(0,0.12); border-radius: 4px; display: inline-block; width: 190px; font-size: 15px; transform: translate3d(0,15px,0); padding: 16px 8px; box-sizing: border-box; transition: 0.25s; visibility: hidden; opacity: 0; z-index: 110; } 如果我替换* ngIf指令中的代码,如此< div class =“user-menu”* ngIf =“1 == 1; else showLogin”>,则DOM响应: 但是,当我监视用户的身份验证状态* ngIf =“afAuth.authState | async as user; else showLogin”时,它会保持无响应状态. 怎么解决这个问题? 解决方法
将此行添加到类中
user$: Observable<firebase.user>; constructor(private afAuth: AngularFireAuth){ this.user$= afAuth.authState } 在HTML写入内部 <div *ngIf="user$| async as user; else showLogin"> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |