为什么我的* ngIf检测到一个对象不为空(Angular2)?

时间:2016-06-23 17:51:01

标签: angular

my.component.ts中,我在模板中有这部分

<li><a *ngIf="m_userO=={}" [routerLink]="['LoginPage']">Login</a></li>
<li><a *ngIf="m_userO!={}" (click)="logOut(m_userO)">{{m_userO.first_name}}<br>Logout</a></li>

我导出

export class myComponent{
m_userO : userO = {};
}

loginPage.component.ts中,我导入myComponent,当他们按下登录时,就会发生这种情况

myComponent.m_userO = this.x_userO; 

此时我已确认x_userO此时不为空。

这个想法是,如果他们没有登录,它会说&#34;登录&#34;如果是,它会说&#34;退出&#34;。问题是当我加载网站时,它已经显示了#34; Logout&#34;但我不确定为什么。感谢。

1 个答案:

答案 0 :(得分:2)

如果用户未被记录,则尝试让实例未定义或为null,然后在他记录时创建实例。在此之后比较像这样的实例:

<li><a *ngIf="m_userO" [routerLink]="['LoginPage']">Login</a></li>
<li><a *ngIf="!m_userO" (click)="logOut(m_userO)">{{m_userO.first_name}}<br>Logout</a></li>