【问题标题】:Angular-cli bootstrap v3 and jquery? Angular 2.0Angular-cli bootstrap v3 和 jquery?角 2.0
【发布时间】:2016-10-11 01:29:38
【问题描述】:

所以我即将开始一个项目,我认为 Angular 2.0 似乎是一个非常可靠的框架:路由、组件、指令等。 但是,我想使用许多已经使用 bootstrap v3 和 jQuery 构建的东西。 我想知道是否可以使用Angular-cli制作的结构集成bootstrap v3和JQuery?

顺便说一句,我见过其他使用 Gulp 的 Angular 2 种子,但他们总是推荐使用官方 Angular-cli。

此外,我对将现有 JS 库引入 Typescript 的实际工作方式以及 jquery 的 $ global 是否会干扰 typescript 也很陌生。

注意:我知道 ng2-bootstrap,但我不认为一切都与这种方法兼容,因为它不使用 jquery 作为依赖项。 我也知道在 Angular 中使用 jquery 并不是最佳实践,但我认为在某些情况下你确实需要它来处理插件或依赖项。

【问题讨论】:

标签: jquery twitter-bootstrap typescript angular angular-cli


【解决方案1】:

我可以建议您一个解决方法,直到他们获得对 3rd 方库的更好支持。它对我有用:)

输入后

npm install jquery 

 typings install jquery --ambient --save

在你的 angular-cli-build.json 中,确保它保持这种方式

module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      ...
      'jquery/**/*.js'
    ]
  });
};

在你的 system-config.ts 中:

/** Map relative paths to URLs. */
 const map: any = {
   'jquery': 'vendor/jquery'
 };

在你的 src/index.html 添加这一行

<script src="/vendor/jquery/dist/jquery.min.js" type="text/javascript"></script>

现在在你想要使用 jquery 的组件中,这样写

declare var $:any;

@Component({
})
export class YourComponent {
  ngOnInit() {
    $.("button").click(function(){
       // now you can DO, what ever you want 
     });
     console.log();
  }
}

在我的项目中,我就是这样做的。希望它可以帮助你:)。

【讨论】:

  • 对我来说它停在你的typings install jquery --ambient --save 它只是抛出以下错误:`无法在注册表中找到“jquery”(“npm”)。你想尝试搜索其他来源吗?`我用谷歌搜索但找不到任何有趣的东西。有什么建议吗?
  • 你有你的打字安装在全球范围内吗?
  • 是的,我愿意。但是感谢菜鸟的安全工作;)
  • npm install jquery --save 然后再试一次
  • 是的。我可以按照描述的方式包含脚本,但我似乎不明白为什么我需要将它包含在 system-config.ts 的地图中,感谢您迄今为止的努力:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 2017-03-19
  • 1970-01-01
  • 2018-09-18
  • 2019-09-21
  • 1970-01-01
相关资源
最近更新 更多