【问题标题】:angular cli and jQuery plugin角度 cli 和 jQuery 插件
【发布时间】:2017-12-12 12:42:36
【问题描述】:

我正在尝试将插件 jquery tooltipster 与 Angular CLI 1.5.5 一起使用,但遇到了一些困难。基本上,我的代码如下:

import * as $ from 'jquery';
import 'jquery-tooltipster/js/jquery.tooltipster.min';

...

$(this.itemRef.nativeElement).tooltipster({
  position: "bottom"
});

然后,在控制台中,我得到 ​​p>

jquery.tooltipster.min.js:1 Uncaught ReferenceError: jQuery is not 定义

我知道这是因为“jquery-tooltipster”正在尝试扩展“jQuery”(全局)并且没有找到它,但是我不知道如何实现它。我认为我可以使用ng eject 来获取webpack.config 文件并使用ProvidePlugin,但我不想弹出配置并使用angular-cli.json。

有没有办法让 jQuery 插件与 ng-cli 一起工作,或者我必须弹出配置?

【问题讨论】:

标签: jquery angular angular-cli


【解决方案1】:

有几种方法可以做到这一点。您可以在 index.html 或 .angular-cli 中的脚本部分中包含 jQuery 和插件 js 文件,然后在使用 jQuery 的代码中包含该行

declare var $ : any;

否则,您可以尝试导入 jQuery 类型

npm install @types/jquery --save-dev

(你可能需要扩展 jQuery 接口来添加插件的签名)

【讨论】:

  • 啊!我缺少的部分是将 js 脚本包含在“angular-cli.json”的“脚本”部分中。所以我在那里添加了“jQuery”和“jQuery-tooltipster”,然后将declare var $ : any;放在我使用jQuery的地方,它运行良好。谢谢;-)
  • 在我看来,当我们做declare var $: any; 的事情时,Typescript (几乎)失去了它的全部目的。如果使用独立的 jQuery,我当然会安装它的类型。问题是:如何为插件声明/导入正确的类型?
  • 我猜你可以声明自己的接口
猜你喜欢
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 2020-05-30
  • 2016-10-11
  • 1970-01-01
  • 2015-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多