ไม่มีผู้ให้บริการสำหรับ TemplateRef! (NgIf -> TemplateRef)


247

ฉันพยายามแสดงเครื่องหมายถูกหากคำตอบคือคำตอบที่ยอมรับได้:

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

แต่ฉันได้รับข้อผิดพลาดนี้:

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

ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


601

คุณพลาดที่*หน้า 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>ปรับปรุงแท็ก


excpetion เดียวกันสามารถเกิดขึ้นได้หากคุณใช้ ngSwitchCase โดยไม่มีเครื่องหมายดอกจัน!
cmxl
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.