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?

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>.


Ten sam wyjątek może również wystąpić, jeśli używasz ngSwitchCase bez gwiazdki!
cmxl
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.