Angular 5 - ngSwitch и ngSwitchCase не должны находиться в реальном элементе html

Я пытаюсь создать различное содержимое таблицы html на основе свойств типа поля компонента. Меня беспокоит то, что, когда я манипулирую html-таблицей, я не могу вставить дополнительный div в свое тело, поэтому использую ng-template для покрытия этого случая, но я получаю это исключение «Нет провайдера для ошибки NgSwitch».

Мне нужно, чтобы ngSwitch и ngSwitchCase не находились в реальном элементе html.

это URL stackblitz для моего сценария

Пожалуйста, подскажите, что здесь делать.


person Feroz Siddiqui    schedule 25.04.2018    source источник


Ответы (2)


ngSwitch не может быть на элементе <ng-template>, только на реальных элементах, таких как <div>, или же вы можете использовать <ng-container> вместо реальных элементов

Вот рабочий пример:

https://stackblitz.com/edit/angular-ftqywh?file=app/app.component.html

 <ng-container [ngSwitch]="type">
    <ng-container  *ngSwitchCase="'type1'">

<tr *ngFor="let myobj of obj">
  <td *ngFor="let data of myobj.arr"></td>
</tr>
    </ng-container>
 </ng-container>
person Pardeep Jain    schedule 25.04.2018

вместо использования ng-template используйте ng-container

person John Velasquez    schedule 25.04.2018