使用System.js导入AnglularJS中的第三方库

时间:2016-07-29 17:45:46

标签: angularjs typescript angular two.js

在这个angular2 plunkr中,我试图导入two.js(第三方lib)并将其引导到我的应用程序中。使用system.config.js,我在映射和包变量中添加了以下行:

  var map = {
        ...othermappings
       'two.js' : 'https://npmcdn.com/two.js@0.6.0/src'
     };
 var packages = {
         ...otherpackages
       'two.js': { main: 'two.js', defaultExtension: 'js' },
   }

在main.ts内部,如果我取消注释以下行:

import {Two} from 'two.js';

并补充说:

bootstrap(AppComponent, [
    ...others,
    //Two
 ])

我得到了以下错误:

(index):20 Error: TypeError: Cannot read property 'isFunction' of undefined(…)

1 个答案:

答案 0 :(得分:1)

该行发生此错误:

hasEventListeners: _.isFunction(root.addEventListener),

正如您所看到的,isFunction_对象的方法。它是下划线。

来自Two.js documentation

  

N.B。 Two.js需要Underscore.js和Backbone.js事件。如果你是   已经将这些文件加载​​到其他地方然后您可以构建项目   你自己,文件大小更小。

这样,第一步是加载下划线和主干plunkr

请参阅 index.html

<!-- Two.js dependencies -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

第二步是从

更改您的导入声明
import {Two} from 'two.js';

import * as Two  from 'two.js'

之后Two将是您想要的功能。

<强> Plunker