Không có nhà cung cấp nào cho TemplateRef! (Ng If -> TemplateRef)


247

Tôi đang cố gắng hiển thị một dấu kiểm nếu câu trả lời là câu trả lời được chấp nhận:

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

Nhưng tôi nhận được lỗi này:

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

Tôi đang làm gì sai?

Câu trả lời:


599

Bạn đã bỏ lỡ *phía trước Ng If (như tất cả chúng ta đều có, hàng chục lần):

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

Không có *, Angular thấy rằng lệnh ngIfđang được áp dụng cho divphần tử, nhưng vì không có *hoặc không có <template>thẻ, nên không thể xác định vị trí mẫu, do đó xảy ra lỗi.


Nếu bạn gặp lỗi này với Angular v5:

Lỗi: StaticInjectionError [TemplateRef]:
  StaticInjectionError [TemplateRef]:
    NullInjectionError: Không có nhà cung cấp nào cho TemplateRef!

Bạn có thể có <template>...</template>trong một hoặc nhiều mẫu thành phần của bạn. Thay đổi / cập nhật thẻ thành <ng-template>...</ng-template>.


Điều tương tự cũng có thể xảy ra nếu bạn sử dụng ngSwitchCase mà không có dấu hoa thị!
cmxl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.