我使用angular-cli引导了Angular 2应用程序。直到我决定使用bootstrap modal之前,一切都是轻而易举的。我只是从其他不使用angular-cli的项目中复制了用于打开模态的代码。我在angular-cli.json文件中的脚本中添加了jquery和bootstrap依赖项。jQuery在项目中是公认的,但是当我尝试this.$modalEl.modal(options)
在角度组件中运行时,出现错误jQuery is not defined
。
实际上jQuery是导入到项目中的,但是是全局的$
。我做了一些挖掘,显然引导程序希望将jQuery作为“ jQuery”变量传递给它。它不会给老鼠带来麻烦$
。
我可以像在其他项目中一样将其jQuery
作为webpack.config.js
文件中的变量公开:(为简洁起见,省略了很多代码)
var jQueryPlugin = {
$: 'jquery',
jquery: 'jquery',
jQuery: 'jquery'
}
exports.root = root;
exports.plugins = {
globalLibProvider: new webpack.ProvidePlugin(webpackMerge(jQueryPlugin, {
svg4everybody: 'svg4everybody/dist/svg4everybody.js'
}))
}
但是angular-cli
开发团队决定不让其他开发人员混入Webpack配置文件。谢谢你们!很体贴的你
我尝试将jQuery直接导入Angular组件以及此处提到的其他一堆东西https://github.com/angular/angular-cli/issues/3202(将导入添加到vendor.ts文件中,然后将vendor.ts添加到angular-cli.json中的scripts数组),但没有任何效果。
老实说,我很生气,像在angular-cli中jquery
使用依赖项这样的琐碎问题bootstrap
就是这样的雷区。
您是否处理过类似的问题?
步骤1
第二步
看看@这个链接。它有一个有效的示例,并提供了一个有关键入是否不包含示例的问题。我在该项目中使用了Angular的bootstrap和jquery,您也可以检查存储库。
在您的情况下,您需要添加jquery文件
像这样在你的angular-cli.json中
然后在component中声明。
declare var $: any;
这应该工作。
更新
我继续使用我提到的步骤,仅使用Angular中的jquery创建了一个引导模式。
它起作用检查此gh页面链接-LINK。
如果您要检查源代码是否相同,请检查LINK。
我发布的答案来自此链接,这是我在Angular LINK上的页面