Aucun fournisseur pour TemplateRef! (NgIf -> TemplateRef)

247

J'essaie d'afficher une coche si une réponse est la réponse acceptée:

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

Mais je reçois cette erreur:

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

Qu'est-ce que je fais mal?

Mark Rajcok
la source

Réponses:

599

Vous avez raté le *devant de NgIf (comme nous l'avons tous fait, des dizaines de fois):

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

Sans le *, Angular voit que la ngIfdirective est appliquée à l' divélément, mais comme il n'y a pas de balise *or <template>, il est incapable de localiser un modèle, d'où l'erreur.


Si vous obtenez cette erreur avec Angular v5:

Erreur: StaticInjectorError [TemplateRef]:
  StaticInjectorError [TemplateRef]:
    NullInjectorError: Aucun fournisseur pour TemplateRef!

Vous pouvez avoir <template>...</template>dans un ou plusieurs de vos modèles de composants. Modifiez / mettez à jour la balise en <ng-template>...</ng-template>.

Mark Rajcok
la source
La même excpetion peut également se produire si vous utilisez ngSwitchCase sans l'astérisque!
cmxl