1

使用 AoT 找不到 ViewChild

  1. 在获得3th party lib support AoT后,我成功编译,编译时ngc没有错误!
  2. 我将此第 3 方库注入到我的项目中,因此我的项目使用 CLI 使用--aot标志进行编译,并且在编译期间没有错误,但是当在导航器上打开应用程序时,我得到:

ReferenceError: nameColumnHeader 未定义

  1. nameColumnHeader是一个ViewChild()装饰器:

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

当然我有<template #nameColumnHeader...>里面的HTML。删除此 ViewChild 时,另一个让我遇到同样的问题 #end of material2/sidenav 组件...

我不知道什么是问题,顺便说一句,为什么当我的项目ng serve --prod --aot时 cli 不告诉我有什么问题!

使用 AoT 将 main.js 捆绑得更大

我删除了所有ViewChild()重新编译,--aot一切正常,页面显示正确,但是:
当我使用main.js 的大小进行编译时ng build --prod1836 Ko,而当使用 AoT 编译时,ng build --prod --aotmain.js 的大小为:1860Ko

如果有用

更新:

使用 ViewChild 时需要使用分号!!!奇怪的是,在没有 AOT 的情况下编译时我们可以编写不带分号的 ViewChild,但使用 AoT 你需要分号

4

0 回答 0