我使用angular-cli设置Angular 2(RC4)并使用typings@0.8.1
。
我用
安装了jQuery npm install jquery@2.2.4 --save
在package.json
中添加"jquery": "^2.2.4"
和
的打字 typings install dt~jquery --global --save
在typings.json中添加
"jquery": "registry:dt/jquery#1.10.0+20160704162008"
(注意:此类型适用于1.x和2.x版本!)
当我现在在任何TypeScript文件中使用import $ from 'jquery'
或import * as $ from 'jquery'
时,tsc会返回:
[ts]无法找到模块' jquery'。
有人可以告诉我为什么吗?我做错了什么?
答案 0 :(得分:1)
你有没有jQuery DefinitelyTyped?
http://www.nuget.org/packages/jquery.TypeScript.DefinitelyTyped/
答案 1 :(得分:0)
我在没有火箭科学的情况下解决了这个问题,就这样做了。似乎RC4在正确解决打字方面遇到了一些麻烦。但是因为我是一个软件开发人员并且所有角度相关的“RC东西”在最后一次变化很多,所以很难为任何RC解决这个问题,所以我决定做一下这样的旧学校:
declare var $: any; // <-- yep, that's it
declare var FlipClock: any; // <-- same here
@Component({
selector: 'my-component',
moduleId: module.id,
templateUrl: './template.html',
styleUrls: ['./styles.css']
})
export class MyComponent implements AfterViewInit {
@ViewChild('flipclock') flipClock: ElementRef;
errors: any;
constructor() {
}
ngAfterViewInit() {
$(this.flipClock.nativeElement).FlipClock({ // <-- we must make sure that
clockFace: 'TwentyFourHourClock' // at runtime $ and FlipClock
// exists
});
}
}
要在运行时提供jQuery和FlipClock,我们只需在index.html
中附加脚本:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>My ng2-rc4 app</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="vendor/flipclock/compiled/flipclock.css">
<link rel="stylesheet" href="app/main.css">
</head>
<body>
<my-app>Loading ...</my-app>
<script src="/vendor/jquery/dist/jquery.min.js"></script>
<script src="/vendor/flipclock/compiled/flipclock.min.js"></script>
</body>
</html>