我的代码
<i *ngIf="!isFollowing" class="far fa-bell"></i>
<i *ngIf="isFollowing" class="fas fa-bell"></i>
isFollowing的类型为布尔值
每当我将其更改为true或false时,它都会根据表达式显示新元素,但是它不会删除先前的元素,而是向DOM中添加了一个新元素。 结果,像图像中一样可见多个图标。
我相信变更检测可以检测到变更并添加新的DOM元素,但不会更新先前的DOM元素。
答案 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>