Angular2 RC5导入第三方JS库:摊牌

时间:2016-09-01 13:34:10

标签: javascript angular showdown

我无法导入Showdown作为供应商。当我编译时,我在浏览器控制台中得到showdown is not defined。由于它是供应商包,我不认为我可以在app.module.ts内导入它。我需要声明自定义输入吗?该软件包全部在js。我在Angular2 RC5上运行。谢谢!

home.service.ts

import 'showdown/dist/showdown';

declare var showdown: any;

private extractData(res: Response) {
   let body      = res.json();
   var converter = new showdown.Converter(),
   originalBody  = window.atob(body.content),
   body.title    = converter.makeHtml(title);
}

vendor.browser.ts

import 'showdown/dist/showdown';

2 个答案:

答案 0 :(得分:5)

我不熟悉Showdown,但如果你想在代码中导入它,你需要有类型定义文件。如果您使用TypeScript 2.0,则只需从npmjs.org安装即可。我刚刚检查过 - 他们在@types组织中有Showdown的类型定义:https://www.npmjs.com/search?q=%40types%2Fshowdown

只需运行npm i @types/showdown --save-dev

如果您使用较旧的TypeScript,请使用Typings安装声明。 不要忘记在index.html中为Showdown添加脚本标记。

在这个示例应用程序中,我隐含地使用了JQuery,但不需要导入它:

https://github.com/Farata/angular2typescript/tree/master/chapter2/auction

答案 1 :(得分:2)

解决方案是使用Yakov Fain提到的打字

import {Converter} from "showdown/dist/showdown";

const converter = new Converter();
var body.title = converter.makeHtml(title);