Атрибуты действительно преобразуются в нижний регистр на Angular, не беспокойтесь об этом.
Кроме того, вопрос, который вы поднимаете как побочный эффект, интересен и может потребовать некоторого объяснения: вы используете innerHtml
с компонентом Angular (mat-icon
, это не стандартный тег HTML).
Так или иначе, он потерпит неудачу: веб-браузер не знает, как отобразить mat-icon
.
Чтобы визуализировать mat-icon
, он должен go через механизм шаблонов Angular: Angular увидит mat-icon
и получит определение / шаблон компонента и отобразите его в HTML терминах (DOM), чтобы браузер мог его понять.
Как правило, в вашем случае вы должны использовать:
<li *ngFor="let foo of foos">
<mat-icon [svgIcon]="foo.icon" ...></mat-icon>
</li>
А если ваши компоненты более сложные, вы можно исследовать, используя контентную проекцию с ng-content
.