Nenhum provedor de TemplateRef! (NgIf -> TemplateRef)


247

Estou tentando mostrar uma marca de seleção se uma resposta for a resposta aceita:

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

Mas eu recebo este erro:

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

O que estou fazendo de errado?

Respostas:


599

Você perdeu a *frente do NgIf (como todos nós temos, dezenas de vezes):

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

Sem o *, Angular vê que a ngIfdiretiva está sendo aplicada ao divelemento, mas como não existe *ou <template>tag, não é possível localizar um modelo, daí o erro.


Se você receber esse erro com o Angular v5:

Erro: StaticInjectorError [TemplateRef]:
  StaticInjectorError [TemplateRef]:
    NullInjectorError: Nenhum provedor para TemplateRef!

Você pode ter <template>...</template>um ou mais modelos de componentes. Altere / atualize a tag para <ng-template>...</ng-template>.


A mesma exceção também pode ocorrer se você usar o ngSwitchCase sem o asterisco!
cmxl 17/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.