angular2 rc1如何导入外部js库
angular 2 rc1 how to import external js library
我正在尝试将 joint.js 与 Angular 2 一起使用。这是我所做的。
index.html
<!-- JoinJS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.css" />
<script src="https://code.jquery.com/jquery-2.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.1/backbone-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.js"></script>
config.js
var map = {
'app': 'app', // 'dist',
'rxjs': 'https://npmcdn.com/rxjs@5.0.0-beta.6',
'angular2-in-memory-web-api': 'https://npmcdn.com/angular2-in-memory-web-api', // get latest
'joint': 'https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.js'
};
//packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.ts', defaultExtension: 'ts' },
'rxjs': { defaultExtension: 'js' },
'angular2-in-memory-web-api': { defaultExtension: 'js' },
'joint': { defaultExtension: 'js' },
};
service.ts
//declare var joint: any;
import * as joint from 'joint';
我收到错误消息“[ts] 找不到模块接头”。
这里缺少什么?
I got error "[ts] Could not find module joint".
FWIW 生成的 javascript 仍然可以 more。
快速修复
您需要在 foo.d.ts
文件中声明 模块:
declare module "join" {
var foo:any;
export = foo;
}
https://basarat.gitbooks.io/typescript/content/docs/types/ambient/d.ts.html
您需要包含类型声明文件,以便 ts 编译器能够理解。全局安装 typings (npm install -g typings) 然后安装 jointjs typings (typings install dt~jointjs --save --global) 文件。
有关参考,请参阅 this and this
我正在尝试将 joint.js 与 Angular 2 一起使用。这是我所做的。
index.html
<!-- JoinJS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.css" />
<script src="https://code.jquery.com/jquery-2.2.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.1/backbone-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.js"></script>
config.js
var map = {
'app': 'app', // 'dist',
'rxjs': 'https://npmcdn.com/rxjs@5.0.0-beta.6',
'angular2-in-memory-web-api': 'https://npmcdn.com/angular2-in-memory-web-api', // get latest
'joint': 'https://cdnjs.cloudflare.com/ajax/libs/jointjs/0.9.7/joint.js'
};
//packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.ts', defaultExtension: 'ts' },
'rxjs': { defaultExtension: 'js' },
'angular2-in-memory-web-api': { defaultExtension: 'js' },
'joint': { defaultExtension: 'js' },
};
service.ts
//declare var joint: any;
import * as joint from 'joint';
我收到错误消息“[ts] 找不到模块接头”。
这里缺少什么?
I got error "[ts] Could not find module joint".
FWIW 生成的 javascript 仍然可以 more。
快速修复
您需要在 foo.d.ts
文件中声明 模块:
declare module "join" {
var foo:any;
export = foo;
}
https://basarat.gitbooks.io/typescript/content/docs/types/ambient/d.ts.html
您需要包含类型声明文件,以便 ts 编译器能够理解。全局安装 typings (npm install -g typings) 然后安装 jointjs typings (typings install dt~jointjs --save --global) 文件。 有关参考,请参阅 this and this