В новом компоненте Angular Material Tree это часть разметки, используемой в примерах ( Angular Material tree с плоским узлом, пример ):
<mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding>
<button mat-icon-button matTreeNodeToggle
[attr.aria-label]="'toggle ' + node.filename">
<mat-icon class="mat-icon-rtl-mirror">
{{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
</mat-icon>
</button>
{{node.filename}} : {{node.type}}
</mat-tree-node>
Обратите внимание, что естьэто интерполяция внутри тега mat-icon
, которая определяет, какой значок показывать.
Я использую в своем проекте шрифт awesome вместо значков Material Design, поэтому я пытаюсь найти способ сделать компонент дереваработать со шрифтами awesome icons.
До сих пор я пытался заменить тег mat-icon
следующим:
<i class="{{treeControl.isExpanded(node) ? 'fas fa-chevron-down' : 'fas fa-chevron-right'}}"></i>
Я также пробовал, где Font Awesome зарегистрирован, чтобы я мог использоватьthis:
<mat-icon fontIcon="{{treeControl.isExpanded(node) ? 'fa-chevron-down' : 'fa-chevron-right'}}"></mat-icon>
В обоих случаях изначально появляется значок шеврон-вправо, и щелчок по расширению работает, но значок не меняется.Однако, если я разверну несколько уровней, затем сверну верхний уровень, а затем снова разверну верхний уровень, все нижние уровни показывают правильный значок (шеврон вниз).
Похоже, что treeControl.isExpanded(node)
не выполняетсяв ожидаемое время (при нажатии кнопки со значком).Есть ли какие-либо решения для этой проблемы?
Вот стек, который демонстрирует проблему: https://stackblitz.com/edit/angular-fx4glo?file=app%2Ftree-flat-overview-example.html