1

AoT を使用して ViewChild が見つからない

  1. サードパーティの libサポートAoTを取得した後、コンパイル時にエラーなしでコンパイルに成功しましngcた!
  2. このサードパーティのライブラリをプロジェクトに挿入するため、プロジェクトは--aotフラグを使用して CLI でコンパイルされ、コンパイル中にエラーは発生しませんが、ナビゲーターでアプリを開くと、次のようになります。

ReferenceError: nameColumnHeader が定義されていません

  1. これnameColumnHeaderViewChild()デコレータです:

@ViewChild('nameColumnHeader') nameColumnHeader: TemplateRef<any>;

もちろん、私は<template #nameColumnHeader...>内部HTMLを持っています。この ViewChild を削除すると、別の問題が発生します #material2/sidenav コンポーネントの終了 ...

何が問題なのかわかりません。ちなみに、プロジェクトでng serve --prod --aotを実行したときに何が問題なのかcliが教えてくれないのはなぜですか!!!

AoT を使用してより大きな main.js をバンドルする

私はすべてのViewChild()再コンパイルを削除し--aot、ページは正しく表示されますが、main.js のサイズを
使用してコンパイルすると1836 Koになり、AoT でコンパイルすると main.jsのサイズは : 1860Koになります。ng build --prodng build --prod --aot

役に立つ場合

アップデート:

ViewChild を使用するときは、セミコロンを使用する必要があります!!! AOTなしでコンパイルするときにセミコロンなしでViewChildを書くことができるのは奇妙ですが、AoTではセミコロンが必要です

4

0 に答える 0