Установить тип объекта аккордеонной панели в переменной HTML dom element - PullRequest
0 голосов
/ 06 мая 2020

У меня есть простой аккордеон, определенный примерно так

<ngb-accordion>
  <ngb-panel #group>
    <ng-template ngbPanelTitle>
        <i [ngClass]="{'fa-chevron-circle-down': group?.isOpen}">

Который работает точно так, как ожидалось. Теперь, когда я обновился до Angular 9 и добавил строгую проверку шаблона, он не работает на group?.isOpen, потому что он не знает, какой тип группы. Я не могу понять, как правильно назначить этот #group.

Например, для навигации я использую <nav #nav="ngbNav" ngbNav>, но я не могу определить правильное имя для панели.

1 Ответ

0 голосов
/ 07 мая 2020

NgbPanel не устанавливает свойство exportAs, поэтому этот синтаксис работать не будет. В качестве обходного пути я могу создать только избыточную функцию в компоненте:

panelTyped(panel): NgbPanel {
    return <NgbPanel>panel;
}
<ngb-accordion>
  <ngb-panel #group>
    <ng-template ngbPanelTitle>
        <i [ngClass]="{'fa-chevron-circle-down': panelTyped(group)?.isOpen}">
...