【问题标题】:App can't access jquery plugins after upgrading from Angular 4 to 6从 Angular 4 升级到 6 后应用程序无法访问 jquery 插件
【发布时间】:2018-11-08 07:37:12
【问题描述】:

以前可以正常工作的 Jquery 插件,现在不行了,因为我已经从 Angular 4 升级到 6。

我收到这样的错误:

TypeError: $(...).datepicker 不是函数

TypeError: $(...).select2 不是函数

我的 vendor.ts 文件包含这些(与 Angular 4 设置相同,没有变化):

import 'jquery';
import 'bootstrap/dist/js/bootstrap';
import 'select2/dist/js/select2';
import 'jquery-ui/ui/widgets/datepicker';

关于如何进行这项工作的任何建议?我错过了什么吗?

我的组件一直使用 jquery as

import * as $ from 'jquery'; //can use $ thereafter in the class

我正在使用 Webpack 4(也是从 2.x 分支升级的)。

使用 Angular CLI

【问题讨论】:

  • 如果您在使用 datepicker 和其他 jQuery 内容的文件中执行 declare var $: any;;这个错误会消失。它将在运行时选择 jQuery 插件。 (可选)此外,您可以在 index.html 中导入这些依赖项
  • 我试过了,没用,我已经将它们导入我的 index.html :)

标签: jquery angular typescript webpack


【解决方案1】:

您确定这是 Angular 6 升级问题,而不是 webpack 问题吗?我有同样的症状,但通过编辑 webpack 配置来修复:

resolve: {
    alias: {
        'jquery': require.resolve('jquery'),
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2020-03-21
    相关资源
    最近更新 更多