Нет провайдера для TemplateRef! (NgIf -> TemplateRef)


247

Я пытаюсь показать галочку, если ответ является принятым ответом:

template: `<div ngIf="answer.accepted">&#10004;</div>`

Но я получаю эту ошибку:

EXCEPTION: No provider for TemplateRef! (NgIf ->TemplateRef)

Что я делаю не так?

Ответы:


603

Вы пропустили *перед NgIf (как и все мы, десятки раз):

<div *ngIf="answer.accepted">&#10004;</div>

Без *, Angular видит, что ngIfдиректива применяется к divэлементу, но так как тега нет *или нет <template>, он не может найти шаблон, а значит, и ошибку.


Если вы получите эту ошибку с Angular v5:

Ошибка: StaticInjectorError [TemplateRef]:
  StaticInjectorError [TemplateRef]:
    NullInjectorError: Нет поставщика для TemplateRef!

Вы можете использовать <template>...</template>один или несколько шаблонов компонентов. Изменить / обновить тег на <ng-template>...</ng-template>.


Такое же исключение может произойти, если вы используете ngSwitchCase без звездочки!
CMXL
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.