Nessun fornitore per TemplateRef! (NgIf -> TemplateRef)


247

Sto cercando di mostrare un segno di spunta se una risposta è la risposta accettata:

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

Ma ottengo questo errore:

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

Che cosa sto facendo di sbagliato?

Risposte:


599

Ti sei perso *davanti a NgIf (come tutti noi, dozzine di volte):

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

Senza il *, Angular vede che la ngIfdirettiva viene applicata divall'elemento, ma poiché non c'è nessun tag *o <template>, non è in grado di individuare un modello, quindi l'errore.


Se ricevi questo errore con Angular v5:

Errore: StaticInjectorError [TemplateRef]:
  StaticInjectorError [TemplateRef]:
    NullInjectorError: nessun provider per TemplateRef!

Potresti avere <template>...</template>uno o più dei tuoi modelli di componenti. Cambia / aggiorna il tag in <ng-template>...</ng-template>.


La stessa eccitazione può verificarsi anche se si utilizza ngSwitchCase senza l'asterisco!
cmxl
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.