2016-05-09 70 views
1

我愿意仅使用ngIf显示特定元素;但是,由于某种原因,它不起作用。Angular2 - * ngIf:如何显示特定元素?

问题:当我点击仅显示特定元素时,所有其他元素都显示出来!

的代码:

HTML(元素从一个异步请求采取)

<ion-col *ngFor="#finalFormat of elements"> 
<div *ngIf="currentElement"> 
<div>Show this element</div> 
</div> 
<div (click)="showThis(finalFormat.elementName)" *ngIf="!currentElement">CLICK TO SHOW</div></ion-col> 

JS:

showThis(element){ 
    if(this.currentElement === element){ 
     return; 
    } 
    this.currentElement = element; 
    } 

回答

1

我更新测试是这样的:

<div *ngIf="currentElement === finalFormat.elementName"> 
    (...) 
</div> 

同为 “单击显示” 块:

<div (click)="showThis(finalFormat.elementName)" 
    *ngIf="!currentElement !== finalFormat.elementName"> 
    CLICK TO SHOW 
</div> 
0

我认为它可以更简单:

<ion-col *ngFor="#finalFormat of elements"> 
    <div *ngIf="finalFormat.currentElement"> 
    <div>Show this element</div> 
    </div> 
    <div (click)="showThis(finalFormat)" *ngIf="!finalElement.currentElement">CLICK TO SHOW</div> 
</ion-col> 

,并在控制器:

showThis(element) { 
    element.currentElement = !element.currentElement; 
} 

所以你基本上只是修改currentElement个人finalFormat物件的财产。