Angular2检查对象是否在*ngIf内有peoperty

Pra*_*A.K 4 typescript angular-ng-if angular2-components angular

export interface Element {    
    name: string;   
}

export class Room implements Element {
name: string; 
type:string
}

export class Hall implements Element {
name: string;
}
Run Code Online (Sandbox Code Playgroud)

我的varibale类型如下所示

selectedElement: Element;
Run Code Online (Sandbox Code Playgroud)

现在在HTML中我如何检查对象是否具有属性'类型'?

<div *ngIf="selectedElement?.type">
my div
</div>
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 9

我想这应该做你想要的:

*ngIf="hasProp(selectedElement, 'type')"
Run Code Online (Sandbox Code Playgroud)
hasProp(o, name) {
  return o.hasOwnProperty(name);
}
Run Code Online (Sandbox Code Playgroud)


小智 8

你可以在html中完成:

<div *ngIf="selectedElement.hasOwnProperty('type')">
my div
</div>
Run Code Online (Sandbox Code Playgroud)

要么

<div *ngIf="selectedElement.hasOwnProperty('type');then 
showMyDiv">...</div>

<ng-template #showMyDiv> 
my div
</ng-template>  
Run Code Online (Sandbox Code Playgroud)


kaw*_*man 6

除了Günter Zöchbauer所说的之外:

*ngIf="selectedElement && selectedElement['type']"
Run Code Online (Sandbox Code Playgroud)