Tidak ada penyedia untuk TemplateRef! (NgIf -> TemplateRef)

247

Saya mencoba menunjukkan tanda centang jika jawaban adalah jawaban yang diterima:

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

Tapi saya mendapatkan kesalahan ini:

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

Apa yang saya lakukan salah?

Mark Rajcok
sumber

Jawaban:

599

Anda melewatkan bagian *depan NgIf (seperti yang kita semua miliki, puluhan kali):

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

Tanpa *, Angular melihat bahwa ngIfarahan sedang diterapkan ke divelemen, tetapi karena tidak ada *atau <template>tag, itu tidak dapat menemukan templat, karenanya kesalahan.


Jika Anda mendapatkan kesalahan ini dengan Angular v5:

Kesalahan: StaticInjectorError [TemplatRef]:
  StaticInjectorError [TemplatRef]:
    NullInjectorError: Tidak ada penyedia untuk TemplatRef!

Anda mungkin memiliki <template>...</template>dalam satu atau beberapa templat komponen Anda. Ubah / perbarui tag ke <ng-template>...</ng-template>.

Mark Rajcok
sumber
Pengecualian yang sama juga dapat terjadi jika Anda menggunakan ngSwitchCase tanpa tanda bintang!
cmxl