使用 AoT 找不到 ViewChild
- 在获得3th party lib support AoT后,我成功编译,编译时
ngc
没有错误! - 我将此第 3 方库注入到我的项目中,因此我的项目使用 CLI 使用
--aot
标志进行编译,并且在编译期间没有错误,但是当在导航器上打开应用程序时,我得到:
ReferenceError: nameColumnHeader 未定义
- 这
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 --prod
为1836 Ko,而当使用 AoT 编译时,ng build --prod --aot
main.js 的大小为:1860Ko
如果有用
更新:
使用 ViewChild 时需要使用分号!!!奇怪的是,在没有 AOT 的情况下编译时我们可以编写不带分号的 ViewChild,但使用 AoT 你需要分号