javascript - 如何在 angular cli 1.0.0-rc.0 中正确包含 jQuery?

标签 javascript jquery angular angular-cli

我在 AngularJS 项目中使用基于 jQuery 的 select2 组件。我和这里的人有类似的问题:https://github.com/fronteed/icheck/issues/322 ,并使用那里的建议解决了它。准确地说,我在不使用该建议时收到错误 TypeError: $(...).select2 is not a function

即我在 @angular/cli/models/webpack-configs/common.js 中添加了 Webpack 配置的下一行。

plugins: [
  new webpack.ProvidePlugin({
      $: "jquery",
      jQuery: "jquery"
    })
]

这是在 angular/cli 中启用 jQuery 的最佳方式吗?

我不认为这样做与 https://github.com/angular/angular-cli/wiki/stories-global-lib 中的相同是正确的方法,因为

a) webpack 捆绑 jQuery 而无需在脚本中指定它

b) 当您按照故事中的描述包含它时,它仍然会抛出 TypeError: $(...).select2 is not a function 错误。

最佳答案

我在我的项目中使用 jQuery,如下所示。

  1. 安装 jQuery

    npm install --save jquery
    
  2. 安装 jQuery 类型定义以进行类型检查。

    npm install --save-dev @types/jquery
    
  3. 在 angular-cli.json 文件中的“scripts”数组中添加 jquery 文件的引用。

    "scripts": [
        "../node_modules/jquery/dist/jquery.min.js"
     ]
    
  4. 在您要使用的任何组件中导入 jquery。

    import * as jQuery from 'jquery';
    

就是这样。同样,您也可以使用其他库,如 moment.jsd3.js 等。

关于javascript - 如何在 angular cli 1.0.0-rc.0 中正确包含 jQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42510334/

相关文章:

javascript - 对站点之间的 postMessage 感到困惑

javascript - Jquery DOMNodeInserted 在 Chrome 中不起作用,但在 IE 中有效

javascript - 获取 aria 扩展值

javascript - 操作后更新 jquery 中的类信息并为 ajax 序列化按钮的 id

jquery - 使用 addClass/removeClass 和 CSS Transitions 的简单 jQuery 幻灯片

javascript - 元素的 src 属性替换,以便在加载时首先呈现修改后的元素

javascript - Stripe.js - 收集收件人信息

javascript - 自动将水平滚动条移动到div中的右端

css - 避免组件在 Angular 上重叠

javascript - 尝试使用 Angular2 表单模型做条件验证器。尝试使用 myForm.setValidators(),但似乎不起作用