如何从jQuery.min.js导入$到Angular 2应用程序?找不到名字

时间:2016-05-12 13:01:12

标签: javascript jquery angular ecmascript-6 systemjs

我有一个使用Typescript的Angular 2应用程序。我想使用jQuery' $来完成各种任务,例如

$(document).ready(function(){        // throwing error: "[ts] Cannot find '$'. any"
  console.log("loaded up!");
  $("#main_div").niceScroll();
})

我已经通过index.html将jQuery.min.js文件导入我的应用程序,如下所示:

<script src="app/libs/jquery.min.js"></script>

但是,我没有在jQuery代码的app.component.ts文件中导入任何内容。是否有必要,如果是,我该如何导入它?

import { GenericService } from './services/Generic.service';       // did not do this
import $ from './libs/jquery.min.js';                              // tried this but does not work

令人惊讶的是,我的代码在我正在开发时昨天工作,但今天我运行npm start时没有。有人可以帮我解决这个导入过程吗?

2 个答案:

答案 0 :(得分:0)

只需做一个

typings install jquery --ambient --save

安装类型定义文件。移除import $ from './libs/jquery.min.js';并在d.ts顶部添加对app.component.ts文件的引用,如下所示:

/// <reference path="../typings/jquery.d.ts"/>

由于您已经在索引中加载Javascript文件,因此只需要输入它,因此TypeScript知道jQuery的名称和方法存在。

答案 1 :(得分:0)

只需添加带有打字的Jquery:

typings install jquery --ambient --save

然后在你的索引中:

<script src="bower_components/jquery/dist/jquery.min.js"></script>

通常打字稿可以完成这项工作:)