2016-06-23 67 views
0

my.component.ts,我有这部分我的模板为什么我的* ngIf检测对象不是空的(Angular2)?

<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此时不是空的。

想法是,如果他们没有登录,它会说“登录”,如果他们是,它会说“注销”。问题是当我加载网站时,它已经显示“注销”,但我不知道为什么。谢谢。

+0

你不能用'=='比较对象。你可以检查它。定义'var a = {}'和'var b = {}'并检查'(a == b)'或'(a === b)'none返回true。 Reginaldo建议您最好使用null或undefined,以确定是否未设置该值。 – stp18

回答

2

尝试让实例未定义,或者如果用户没有记录,那么当他登录时创建实例。在比较这样的例子之后:

<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> 
相关问题