* ngIf添加元素而不是替换元素

时间:2018-10-24 10:33:53

标签: angular angular6 angular-ng-if

我的代码

<i *ngIf="!isFollowing" class="far fa-bell"></i>
<i *ngIf="isFollowing" class="fas fa-bell"></i>

isFollowing的类型为布尔值

每当我将其更改为true或false时,它都会根据表达式显示新元素,但是它不会删除先前的元素,而是向DOM中添加了一个新元素。 结果,像图像中一样可见多个图标。

Multiple Icons being Added

我相信变更检测可以检测到变更并添加新的DOM元素,但不会更新先前的DOM元素。

3 个答案:

答案 0 :(得分:3)

尝试一下

<i [ngClass]="{'far': !isFollowing, 'fas': isFollowing}"  class="fa-bell"> <i>

答案 1 :(得分:1)

尝试

<i *ngIf="!isFollowing; else follow" class="far fa-bell"></i>
<ng-template #follow><i class="fas fa-bell"></i></ng-template>

答案 2 :(得分:0)

您为什么不使用ngClass来这样做?

<i [ngClass]="{'fas fa-bell': isFollowing == true, 'far fa-bell': isFollowing == false}"></i>