Brak dostawcy dla TemplateRef! (NgIf -> TemplateRef)

247

Próbuję pokazać znacznik wyboru, jeśli odpowiedź jest odpowiedzią zaakceptowaną:

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

Ale pojawia się ten błąd:

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

Co ja robię źle?

Mark Rajcok
źródło

Odpowiedzi:

601

Przegapiłeś *przed NgIf (jak wszyscy dziesiątki razy):

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

Bez *kątowa widzi, że ngIfdyrektywa jest stosowana do divelementu, ale ponieważ nie jest *ani <template>tag, nie jest w stanie zlokalizować szablon, stąd ten błąd.


Jeśli pojawi się ten błąd w Angular v5:

Błąd: StaticInjectorError [TemplateRef]:
  StaticInjectorError [TemplateRef]:
    NullInjectorError: Brak dostawcy dla TemplateRef!

Możesz mieć <template>...</template>jeden lub więcej szablonów komponentów. Zmień / zaktualizuj tag na <ng-template>...</ng-template>.

Mark Rajcok
źródło
Ten sam wyjątek może również wystąpić, jeśli używasz ngSwitchCase bez gwiazdki!
cmxl