web-dev-qa-db-ja.com

Angular2 TemplateRefのためのプロバイダはありません! (NgIf - > TemplateRef)

回答が承認された回答である場合、チェックマークを表示しようとしています。

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

しかし、私はこのエラーが出ます:

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

何がおかしいのですか?

194
Mark Rajcok

あなたはNgIfの前で*を見逃しています(私たち全員がそうであるように、何十回も)。

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

*がないと、AngularはngIfディレクティブがdiv要素に適用されていることを認識しますが、*または<template>タグがないため、テンプレート、つまりエラーを見つけることができません。


Angular v5でこのエラーが発生した場合:

エラー:StaticInjectorError [TemplateRef]:
StaticInjectorError [TemplateRef]:
NullInjectorError:TemplateRef!のプロバイダはありません。

1つ以上のコンポーネントテンプレートに<template>...</template>を含めることができます。タグを<ng-template>...</ng-template>に変更または更新します。

453
Mark Rajcok