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


247

Я намагаюся показати галочку, якщо відповідь є прийнятою відповіддю:

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

Але я отримую цю помилку:

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

Що я роблю неправильно?

Відповіді:


601

Ви пропустили *перед 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.