No hay proveedor para TemplateRef! (NgIf -> TemplateRef)

247

Estoy tratando de mostrar una marca de verificación si una respuesta es la respuesta aceptada:

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

Pero me sale este error:

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

¿Qué estoy haciendo mal?

Mark Rajcok
fuente

Respuestas:

599

Te perdiste el *frente de NgIf (como todos lo hemos hecho, docenas de veces):

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

Sin el *, angular ve que la ngIfDirectiva se aplica a la divelemento, pero ya que no hay *o <template>etiqueta, que es incapaz de localizar una plantilla, de ahí el error.


Si obtiene este error con Angular v5:

Error: StaticInjectorError [TemplateRef]:
  StaticInjectorError [TemplateRef]:
    NullInjectorError: ¡No hay proveedor para TemplateRef!

Puede tener <template>...</template>una o más de sus plantillas de componentes. Cambiar / actualizar la etiqueta a <ng-template>...</ng-template>.

Mark Rajcok
fuente
¡La misma excitación también puede ocurrir si usa ngSwitchCase sin el asterisco!
cmxl