使用ng-if隐藏某个元素

时间:2018-06-11 09:30:29

标签: angular

我有一个与我的用户相关的电子邮件列表,在此列表中有我的电子邮件,有时我的电子邮件位于第一个位置,有时它位于中间。 我想显示除了我的所有电子邮件。

Dashboard.html

npm install
npm ERR! code ECONNRESET
npm ERR! errno ECONNRESET
npm ERR! network request to http://172.23.4.20:4873/@angular%2fcli failed, reason: read ECONNRESET
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Roy\AppData\Roaming\npm-cache\_logs\2018-06-11T09_24_47_695Z-debug.log

Schema.json

   <ion-item *ngFor="let sender of email.senders" class="user">
      <div *ngIf="sender.firstname?.length>0" class="firstname">{{ sender.firstname }}</div>
      <div [class.email-nofirstname]="!sender.firstname?.length>0" class="email">{{ sender.email }}</div>
      <ion-icon (click)="deleteUser(sender.email)" name="close" item-end></ion-icon>
    </ion-item>

在这个例子中,我的电子邮件位于第一个位置,我可以做一个切片(1)

但有时它会在列表中随机出现,所以我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

不要将此逻辑放在标记中,在TS文件中执行此操作。

这样的事情:

filteredSenders = this.senders.filter(x => x !== this.admin);
... *ngFor="let sender of filteredSenders" ...

当然,请修改语法,使其与您的语法相匹配。

答案 1 :(得分:0)

您可以在ng-container元素中尝试使用*ng-if添加ion-item条件。

<ng-container *ngFor="let sender of email.senders">
    <ion-item *ngIf="sender.email != email.admin" class="user">
      <div *ngIf="sender.firstname?.length>0" class="firstname">{{ sender.firstname }}</div>
      <div [class.email-nofirstname]="!sender.firstname?.length>0" class="email">{{ sender.email }}</div>
      <ion-icon (click)="deleteUser(sender.email)" name="close" item-end></ion-icon>
    </ion-item>
</ng-container>