Angular2没有TemplateRef的提供者! (NgIf – > TemplateRef)

我试图显示一个复选标记,如果答案是被接受的答案:

template: `<div ngIf="answer.accepted">✔</div>` 

但是我得到这个错误:

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

我究竟做错了什么?

你错过了NgIf前面的* (像我们都有,几十次):

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

如果没有* ,Angular会看到ngIf指令被应用于div元素,但由于没有*<template>标签,因此无法定位模板,因此出现错误。


如果您在Angular v5中遇到这个错误:

错误:StaticInjectorError [TemplateRef]:
StaticInjectorError [TemplateRef]:
NullInjectorError:没有TemplateRef的提供者!

您可能在一个或多个组件模板中有<template>...</template> 。 将标签更改/更新为<ng-template>...</ng-template>

我没有得到这个包含模板或类似的问题的错误。 发生此错误是因为一些代码错误,如:

`object.omeProperty1> 0'someProperty1'属性可能不存在。

所以其他一些错误的代码可能会触发这个错误。 希望能帮助到你!