12

遅延ロードされたモジュールでディレクティブを機能させることができません。ドキュメントを読み、ディレクティブをメインモジュールの宣言配列に追加しただけです。ディレクティブはそのモジュールで期待どおりに機能しますが、遅延ロードされたモジュールでは機能しません。テンプレートエラーが原因で、遅延ロードされたモジュールを開くことさえできなくなります。

Can't bind to 'myHighlight' since it isn't a known property of 'p'

これが私のPlunkerです。

「子に移動」をクリックした後、コンソールでエラーを確認します

4

2 に答える 2

39

これは、ディレクティブが宣言されてAppModuleおり、そこでのみ使用できるためです。両方のモジュールでディレクティブを使用する場合はSharedModule、そこからディレクティブを作成して宣言し、エクスポートしてから、 と にインポートできSharedModuleます。AppModuleChildModule

@NgModule({
  declarations: [ HighlightDirective ],
  exports: [ HighlightDirective ]
})

export class SharedModule {}

とのインポートに追加SharedModuleするだけです。AppModuleChildModule

ノート:

AppModuleディレクティブは一度しか宣言できないため、 の宣言からディレクティブを削除する必要があります。

于 2017-01-03T02:07:45.870 に答える