我正在尝试在AOT生产版本中发布Angular4前端项目。经过长时间的角度cli成功建立aot模式后,我终于发布了以前发布的前端" build prod --aot false"并看到AOT和JIT之间的区别。不幸的是,当webapp在浏览器中启动时,我遇到了以下错误。
Error: Uncaught (in promise): TypeError: Cannot read property '$' of undefined
该错误似乎与我在app.module.ts中的jQuery(因为$)有关。
'import * as $ from 'jquery';'
但是我意识到它并不是jQuery相关的因为即使我在我的应用程序中完全删除了jQuery引用和用法,我仍然会得到相同的错误。
注意:如果前端是用" prod --aot true"构建的,那么我只会收到此错误。但不是当应用程序使用" prod --aot false"
构建时更新:我也意识到我在项目中有SignalR服务,其定义使用$符号。
export class SignalrWindow extends Window {
$: any;
}
不确定发生了什么。任何帮助都会很棒!
答案 0 :(得分:1)
创建一个新的定义文件(例如:definitions.d.ts)并添加以下代码:
int number = int.Parse(new string(textBox1.Text.Where(char.IsDigit).ToArray()));
答案 1 :(得分:0)
使用jquery而不是安装依赖项的一种方法是将jquery脚本添加到index.html
文件并创建define
变量。
<强>的index.html 强>
<script type="text/javascript" src="jquery-2.1.1.min.js"></script>
<强> app.module.ts 强>
declare var $: any;
这样做的缺点是,IntelliSense不能与 define 变量一起使用。