首页 > 解决方案 > Angular 6 ReferenceError: $ is not defined error with JQuery

问题描述

我已经安装了带有基础的 Angular 6,但是 JQuery 出现错误。

未捕获的语法错误:意外标识符 ReferenceError:未定义 $

在我的组件中,我有

declare var $:any

onNgInit () {
  $(document).foundation()
}

我的 angular.json 中有所有导入

scripts : [
  "node_modules/jquery/dist/jquery.js"
]

我已经尝试了我在互联网上找到的所有内容,但仍然面临同样的错误。当我使用 Angular 4 时,还要添加这个曾经工作过的东西

标签: jqueryangularzurb-foundationzurb-foundation-6

解决方案


这与 ES6 模块隔离的工作方式有关。从文件加载与angular.jsonindex.html 文件(全局范围)上的脚本标记相同。当您在任何组件上导入它时,您将获得一个新的本地副本,因此请避免以这种方式导入它。

为了防止智能感知和编译问题,请创建一个typings.d.ts包含以下内容的文件:

declare var $: any;
declare var jQuery: any;

现在你准备好了:)


推荐阅读