Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

592
Views
¡No hay proveedor para TemplateRef! (NgIf -> Ref. de plantilla)

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?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

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

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

Sin el * , Angular ve que la directiva ngIf se aplica al elemento div , pero dado que no hay una etiqueta * o <template> , no puede ubicar 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> en una o más de sus plantillas de componentes. Cambie/actualice la etiqueta a <ng-template>...</ng-template> .

over 4 years ago · Santiago Trujillo Report

0

Entonces, puedo ayudar a comprender qué (y dónde) cometió el error, pero antes, debemos leer la documentación:

Acceda a una instancia de TemplateRef colocando una directiva en un elemento (o directiva con el prefijo *). El TemplateRef para la vista incrustada se inyecta en el constructor de la directiva, utilizando el token TemplateRef.

También puede usar una consulta para encontrar una TemplateRef asociada con un componente o una directiva.

Asi que:

  • Al usar [ngIf]="something" , debe usar <ng-template> para acceder a la referencia de la plantilla (por ejemplo, cuando usa <template> o <ng-template> );
  • Usando *ngIf puede usarlo donde quiera porque * garantiza el acceso a la referencia de la plantilla (por ejemplo, cuando usa <span> o <div> );

Si está usando en su código algo como <span [ngIf]="message"> {{message}}</span> probablemente obtendrá algún error.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!