TemplateRef!(NgIf ->TemplateRef) 제공자가 없습니다.
응답이 허용된 경우 체크 표시를 표시하려고 합니다.
template: `<div ngIf="answer.accepted">✔</div>`
하지만 다음과 같은 오류가 발생합니다.
EXCEPTION: No provider for TemplateRef! (NgIf ->TemplateRef)
내가 뭘 잘못하고 있는 거지?
당신은 그것을 놓쳤습니다.*NgIf 앞에서 (우리 모두가 수십 번 그랬던 것처럼):
<div *ngIf="answer.accepted">✔</div>
다음을 제외하고는*Angular는 그것을 봅니다.ngIf지시가 적용되고 있습니다.div요소, 하지만 없기 때문에.*또는<template>태그. 템플릿을 찾을 수 없으므로 오류가 발생했습니다.
Angular v5에서 이 오류가 발생하는 경우:
오류: 정적 인젝터 오류[TemplateRef]:
정적 인젝터 오류 [템플릿 참조]:
NullInjectorError: TemplateRef!에 대한 공급자가 없습니다.
당신은 아마<template>...</template>하나 이상의 구성 요소 템플릿에 있습니다.태그를 다음으로 변경/업데이트<ng-template>...</ng-template>.
따라서 귀하가 실수한 내용(그리고 어디서)을 이해하는 데 도움이 될 수 있지만, 그 전에 문서를 읽어야 합니다.
요소(또는 * 앞에 붙은 지시어)에 지시어를 배치하여 TemplateRef 인스턴스에 액세스합니다.포함된 보기에 대한 TemplateRef는 TemplateRef 토큰을 사용하여 지시어 생성자에 주입됩니다.
쿼리를 사용하여 구성 요소 또는 지시어와 연결된 TemplateRef를 찾을 수도 있습니다.
그래서:
- 사용 시
[ngIf]="something"사용해야 합니다.<ng-template>템플릿 참조 액세스(예: 사용 시)<template>또는<ng-template>); - 사용.
*ngIf* 가란트가 템플릿 참조에 대한 액세스 권한을 제공하므로 원하는 곳에서 사용할 수 있습니다(예: 사용 시).<span>또는<div>);
코드에서 다음과 같은 것을 사용하는 경우<span [ngIf]="message"> {{message}}</span>아마 오류가 날 겁니다.
코드를 작성할 때 몇 개의 구문을 놓치는 것은 일반적인 오해입니다. 모든 사람이 ngIf 앞에 *를 사용하지 않는 것이 일반적인 실수입니다. ngIf를 사용할 때 각도 컴파일러가 ngIf를 템플릿 참조 변수로 만들고 파일에서 찾을 수 없는 변수에 대한 로컬 참조를 확인합니다.그러니 이 실수들을 확인하고 가능하다면 그것들로부터 배워주세요.
<div *ngIf="answer.accepted">✔</div>
언급URL : https://stackoverflow.com/questions/35932074/no-provider-for-templateref-ngif-templateref
'source' 카테고리의 다른 글
| C#의 배열과 같은 목록을 초기화할 수 있는 이유는 무엇입니까? (0) | 2023.04.27 |
|---|---|
| 런타임에 XAML을 로드하시겠습니까? (0) | 2023.04.27 |
| Install-Module : 'Install-Module' 용어가 cmdlet의 이름으로 인식되지 않습니다. (0) | 2023.04.27 |
| 길을 잃었어요.ASP에 무슨 일이 있었습니까?NET MVC 5? (0) | 2023.04.27 |
| python을 사용하여 XLSX를 CSV로 올바르게 변환 (0) | 2023.04.27 |