Angular2导入自定义JavaScript库

时间:2017-05-18 18:22:02

标签: javascript angular leaflet

我正在重复使用几个定制的javascript库,这对我的实际项目有用,我的问题是在谷歌搜索后这个网站没有答案帮助了我,一些解决方案是hacky,我想知道因为angular2 / 4是正式释放的,所以有任何方法可以以适当的方式做到这一点吗?

修改 我正在添加更多细节,其中一些库用于传单,我不想更改为angular2-leaflet,因为像leaflet geotagged photos这样的插件自3年前就已经更新了。 如果我像这样加载脚本,我实际上可以在页面中看到地图:

ngAfterViewInit() {

    var s = document.createElement("script");
    s.type = "text/javascript";
    s.src = "./resources/js/app/visitantes_leaflet.js";
    this.elementRef.nativeElement.appendChild(s);

  }

但我不能从那里发送数据或调用方法(我试图在html上使用好的''js事件)。 来自@Michal的答案没有显示地图,@ Joo Beck的答案是“有效”,但显示此错误:Error: Map container not found.因为在{L'('map')之前未添加<div id="map">。< / p>

2 个答案:

答案 0 :(得分:2)

您可能应该提及您尝试过的内容以及无法使用的内容,因此我们可以帮助您找到解决方案而不会浪费时间。如果你提到你是使用打字稿还是javascript,它也会很有用。看起来你使用的是javascript,但是如果你使用的是打字稿,可以解释你遇到问题的原因。

如果你正在使用打字稿,对我来说有用的只是一个声明var和一个导入,就像这样。

declare var RecordRTC: any;

import "../../dependencies/RecordRTC.js";

声明只是让打字稿知道它需要的是什么,它可以在转换后访问它。

答案 1 :(得分:1)

在angular-cli.json文件(位于root目录中)中,将您的javascript库添加到app [0] .scripts array

{
 "project": {
  },
  "apps": [
    {
     ...
      "scripts": [
        "../node_modules/custom-library/main.js",
      ],
    }
  ],
}