2017-05-18 114 views
0

我正在重复使用几个自定义的javascript库,这对我的实际项目有用,我的问题是在谷歌和本网站搜索后没有任何答案帮助过我,一些解决方案是哈克,我想知道自从angular2/4被公开发布以来,有什么方法可以以正确的方式来做到这一点?Angular2导入自定义JavaScript库

编辑: 我添加更多的细节,其中的一些库是单张的,我不想改变angular2小叶因为一些自3年前它已被更新像leaflet geotagged photos的插件。 我居然可以看到在页面的地图,如果我加载脚本是这样的:

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.,因为012map未在L.map('地图')之前添加。

+0

所以有什么问题?导入并使用它与'rxjs'完成的方式 –

+0

@Maximus我之前说过,这些解决方案都没有真正起作用 –

回答

1

在您的角cli.json文件(位于根目录)添加JavaScript库到App [0] .scripts中数组

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

你或许应该提什么你都试过,什么也没有工作,所以我们可以帮助您找到解决方案而不浪费时间。如果您提到您使用的是打字稿或JavaScript,这也会很有用。看起来你正在使用JavaScript,但如果你使用的是打字稿,coudl解释你为什么有问题。

如果您使用的是打字稿,那么对我而言,只是一个声明变量和一个导入,就像这样。

declare var RecordRTC: any; 

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

该声明只是让打字稿知道它需要的是否存在,它可以在转录后访问它。

+0

我得到这个错误:'遇到函数时你可能需要一个合适的加载器来处理这个文件类型' –