我有一个脚本包已经包含jquery amont其他东西。我只是想用它。当尝试从组件中使用它时,它无法说ERROR ReferenceError: $ is not defined
。但是当我转到控制台类型$('body')
时,它可以正常工作。我做错了什么?
修改
我忘了提到页面的顶部包含这个:
declare var $ : any;
这是一个angular-cli项目,该包已经包含在.angular-cli.json
中答案 0 :(得分:1)
安装jquery的打字:
npm install --save-dev @types/jquery
在顶部的组件中包含:
declare const $: JQueryStatic;
并确保您的src / tsconfig.app.json文件具有以下键:
"typeRoots": [
"../node_modules/@types"
],
"types": [
"jquery"
]
答案 1 :(得分:0)
Angular-cli使用webpack构建项目。
现在webpack树会动摇所有未导入的内容并将整个内容捆绑到一个独立的范围内,因此如果你没有任何对jquery的引用,那么你的单元将无法使用它
所以只需在您的ts文件中执行:
import * as $ from 'jquery'
也许您还需要通过npm添加jquery包:
npm install -S jquery
那-S代表--save
plnkr演示:https://plnkr.co/edit/y272nspAjnHy2wsTqzdh?p=preview
我强烈建议不要在你的Angular 2+项目中使用JQuery,像querySelector
和addEventListener
这样的本地人使用angular的绑定会使jQuery过时。