通过 Angular 组件更改字体真棒图标
Changing font awesome icons through Angular components
我正在使用 font-awesome 版本 4.7.0 和 Angular 5。当我向屏幕添加图标时,图标立即从标签变为,我无法访问它的 class来自 Angular 组件,这是我想要做的。
由此产生的行为是正确显示了第一个定义的图标,但我所做的任何后续更改应该反映在 UI 上,并且根本没有显示字体很棒的图标。
具体问题是我希望在对 table 进行排序时更改图标。初始图标设置为 fa-sort,并且显示正确,但是当单击 table header 时,内容得到排序和更新,但图标没有更改为 [=23] =]-向上或 fa-sort-向下。我已经测试了逻辑并且它工作正常。
应该执行此操作的当前 HTML 代码如下所示:
<i [ngClass]="sortBy.key !== 'login' ? 'icon-sort' : sortBy.order === 'desc' ? 'icon-sort-up' : 'icon-sort-down'"></i>
尝试在组件代码本身中分配图标,例如:
在组件中
getIcon(){
sortBy.key !== 'login' ? 'icon-sort' : sortBy.order === 'desc' ? 'icon-sort-up' :
'icon-sort-down'
}
我认为它与变化检测有关,或者您可以通过导入变化检测在排序后手动触发它。
例如:
`constructor(cd: ChangeDetectorRef) {}`
然后在您的代码中,
this.cd.detectChanges();
这是因为 fontawesome 将您的标签替换为 .要更改图标,请使用此模板(在您需要的 class 中使用):
<span *ngIf="sortAsc"><i class="icon-sort-up"></i></span>
<span *ngIf="!sortAsc"><i class="icon-sort-down"></i></span>
我正在使用 font-awesome 版本 4.7.0 和 Angular 5。当我向屏幕添加图标时,图标立即从标签变为,我无法访问它的 class来自 Angular 组件,这是我想要做的。
由此产生的行为是正确显示了第一个定义的图标,但我所做的任何后续更改应该反映在 UI 上,并且根本没有显示字体很棒的图标。
具体问题是我希望在对 table 进行排序时更改图标。初始图标设置为 fa-sort,并且显示正确,但是当单击 table header 时,内容得到排序和更新,但图标没有更改为 [=23] =]-向上或 fa-sort-向下。我已经测试了逻辑并且它工作正常。
应该执行此操作的当前 HTML 代码如下所示:
<i [ngClass]="sortBy.key !== 'login' ? 'icon-sort' : sortBy.order === 'desc' ? 'icon-sort-up' : 'icon-sort-down'"></i>
尝试在组件代码本身中分配图标,例如:
在组件中
getIcon(){
sortBy.key !== 'login' ? 'icon-sort' : sortBy.order === 'desc' ? 'icon-sort-up' :
'icon-sort-down'
}
我认为它与变化检测有关,或者您可以通过导入变化检测在排序后手动触发它。
例如:
`constructor(cd: ChangeDetectorRef) {}`
然后在您的代码中,
this.cd.detectChanges();
这是因为 fontawesome 将您的标签替换为 .要更改图标,请使用此模板(在您需要的 class 中使用):
<span *ngIf="sortAsc"><i class="icon-sort-up"></i></span>
<span *ngIf="!sortAsc"><i class="icon-sort-down"></i></span>