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


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

我的变种类型如下所示

selectedElement: Element;

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

<div *ngIf="selectedElement?.type">
my div
</div>

我想这应该可以做你想要的:

*ngIf="hasProp(selectedElement, 'type')"
hasProp(o, name) {
  return o.hasOwnProperty(name);
}

你可以简单地在html中做到这一点:

<div *ngIf="selectedElement.hasOwnProperty('type')">
my div
</div>

<div *ngIf="selectedElement.hasOwnProperty('type');then 
showMyDiv">...</div>
<ng-template #showMyDiv> 
my div
</ng-template>  

除了Günter Zöchbauer说的:

*ngIf="selectedElement && selectedElement['type']"
在这种情况下

,管道将是性能最高的选项。

嗡:

import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
  name: 'hasProp',
})
export class HasPropPipe implements PipeTransform {
  transform(object: object, prop: string): boolean {
    return object.hasOwnProperty(prop);
  }
}

模板:

<button *ngIf="option | hasProp: 'value'">Yay!</button>

相关内容

  • 没有找到相关文章

最新更新