angularangular2-template

No provider for TemplateRef! (NgIf ->TemplateRef)


I'm trying to show a checkmark if an answer is the accepted answer:

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

But I get this error:

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

What am I doing wrong?


Solution

  • You missed the * in front of NgIf (like we all have, dozens of times):

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

    Without the *, Angular sees that the ngIf directive is being applied to the div element, but since there is no * or <template> tag, it is unable to locate a template, hence the error.


    If you get this error with Angular v5:

    Error: StaticInjectorError[TemplateRef]:
      StaticInjectorError[TemplateRef]:
        NullInjectorError: No provider for TemplateRef!

    You may have <template>...</template> in one or more of your component templates. Change/update the tag to <ng-template>...</ng-template>.