繁体   English   中英

Angular2 - *ngIf:如何显示特定元素?

[英]Angular2 - *ngIf : How to show a specific element?

我愿意使用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;
    }

我会像这样更新测试:

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

与“单击显示”块相同:

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

我认为它可以更简单:

<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;
}

所以你基本上只是修改单个finalFormat对象的currentElement属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM