2

我正在使用带有 Angular 5 的 font-awesome 版本 4.7.0。当我将图标添加到屏幕时,图标立即从标记更改为,我无法从 Angular 组件访问它的类,这是我想要做的。

产生的行为是正确显示定义的第一个图标,但我所做的任何后续更改都应该反映在 UI 上,并更改字体真棒图标根本不会显示。

具体问题是我希望在对表格进行排序时更改图标。初始图标设置为 fa-sort,并且它显示正确,但是当单击表头时,内容得到排序和更新,但图标不会更改为 fa-sort-up 或 fa-sort-down。我已经测试了逻辑并且它工作正常。

应该执行此操作的当前 HTML 代码如下所示:

<i [ngClass]="sortBy.key !== 'login' ? 'icon-sort' : sortBy.order === 'desc' ? 'icon-sort-up' : 'icon-sort-down'"></i>

4

2 回答 2

3

这是因为 fontawesome 将您的标签替换为 . 要更改图标,请使用此模板(在您需要的类中使用):

<span *ngIf="sortAsc"><i class="icon-sort-up"></i></span>
<span *ngIf="!sortAsc"><i class="icon-sort-down"></i></span>
于 2018-09-12T14:05:19.720 回答
0

尝试在组件代码本身中分配图标,例如:

在组件中

getIcon(){
   sortBy.key !== 'login' ? 'icon-sort' : sortBy.order === 'desc' ? 'icon-sort-up' : 
  'icon-sort-down'
}

我认为它与更改检测有关,或者您可以在排序后通过导入更改检测手动触发它。

前任:

`constructor(cd: ChangeDetectorRef) {}`

然后在你的代码中,

    this.cd.detectChanges();
于 2018-09-12T13:46:51.803 回答