我正在使用Angular 7,并且正在尝试在组件中使用jQuery的.modal函数:
show() {
$('#' + this.id).modal('show');
}
但是我收到该错误...这是图片:
我还在app.module.ts
中添加了以下这一行:
从'jquery'中将*导入为$;
但是问题仍然存在。
我发现了类似的问题here,并遵循相同的步骤,但问题仍然存在。
这是我的package-lock.json
文件,我已经看到了一些与jquery相关的内容:
"@types/bootstrap": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-4.3.0.tgz",
"integrity": "sha512-v1BkpRVgNH9eXE+RtWFP1wh/+SAkPZaxHthS6umqf1sGV0tAvHdPHZpAOB+H74e91ElOxtS56dxbon+lXWk4AQ==",
"dev": true,
"requires": {
"@types/jquery": "*",
"popper.js": "^1.14.1"
}
"@types/jquery": {
"version": "3.3.29",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.29.tgz",
"integrity": "sha512-FhJvBninYD36v3k6c+bVk1DSZwh7B5Dpb/Pyk3HKVsiohn0nhbefZZ+3JXbWQhFyt0MxSl2jRDdGQPHeOHFXrQ==",
"dev": true,
"requires": {
"@types/sizzle": "*"
}
},
"jquery": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
"integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
},
如果有人可以帮助,那就太好了!谢谢!
答案 0 :(得分:0)
我通过手动添加名为 typings.d.ts 的文件解决了该问题,就像在Angular 7中一样,它不像以前的版本那样出现,并且在该文件中我添加了nterface JQuery { ... }
,现在一切正常! :)
interface JQuery {
dataTable: any;
datepicker: any;
datetimepicker: any;
moment: any;
select2: any;
DataTable: any;
iCheck: any;
animateCss: any;
actual: any;
fullscreen: any;
noUiSlider: any;
modal: any;
tab: any;
multiselect: any;
spectrum: any;
}
答案 1 :(得分:0)
我也遇到了同样的问题。对我有用的只是安装JQuery的官方类型。
npm install @types/jquery --save-dev
然后在您的.tsconfig
文件中找到"types"
数组,并像这样插入:
"types": [
...
"jquery",
...
]
使用import * as $ from 'jquery';
,您应该会很好。
答案 2 :(得分:0)
我也遇到了同样的问题,我已经完成了以下步骤,问题得到解决。
# in your terminal paste this
npm install -D @types/bootstrap --save
# put this in your app.module.ts
import * as bootstrap from "bootstrap";
import * as $ from "jquery";