2016-07-29 3 views
0

В этом angular2 plunkr, я пытаюсь импортировать two.js (сторонняя библиотека) и загружать его в мое приложение. Используя system.config.js, я добавил следующие строки из отображений и пакетов вары:Импорт сторонней библиотеки в AnglularJS с System.js

var map = { 
     ...othermappings 
     'two.js' : 'https://npmcdn.com/[email protected]/src' 
    }; 
var packages = { 
     ...otherpackages 
     'two.js': { main: 'two.js', defaultExtension: 'js' }, 
    } 

Внутри main.ts, если я раскомментируйте следующую строку:

import {Two} from 'two.js'; 

, а также добавил:

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

Я получаю ошибку follwoing:

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

ответ

1

Эта ошибка возникает на линии:

hasEventListeners: _.isFunction(root.addEventListener), 

Как вы можете видеть isFunction является метод _ объекта. Это подчеркивает.

От Two.js documentation:

N.B. Two.js requires Underscore.js and Backbone.js Events. If you're already loading these files elsewhere then you can build the project yourself and get the file size even smaller.

Таким образом, первый шаг является загрузка подчёркивания и позвоночник 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

+0

спасибо за ответ. Если вы раскомментируете строку 17 в main.ts, где: «// Two», plunk не загружает и передает ошибку, о которой я говорю. – Tunity

+0

Я обновил плункер http://plnkr.co/edit/dHN8vTQ4wUTfD9kugf2q?p=preview. Но я думаю, что вам не нужно использовать two.js в качестве провайдера. Вы можете просто использовать его как 'new Two', где вы хотите – yurzui

+0

спасибо за обновление. Меня просто бросает вызов включение третьей стороны lib с angular2, поэтому я пытаюсь импортировать и загружать файл two.js в качестве поставщика. – Tunity

Смежные вопросы