2016-04-27 1 views
0

Я пытаюсь использовать dragula в приложении angular2 с угловым кли.используя dragula с systemjs

<script src="vendor/dragula/dist/dragula.min.js"></script> 

<script src="vendor/es6-shim/es6-shim.js"></script> 
<script src="vendor/systemjs/dist/system-polyfills.js"></script> 
<script src="vendor/angular2/bundles/angular2-polyfills.js"></script> 
<script src="vendor/systemjs/dist/system.src.js"></script> 
<script src="vendor/rxjs/bundles/Rx.js"></script> 

<script src="vendor/angular2/bundles/angular2.dev.js"></script> 
<script src="vendor/angular2/bundles/http.dev.js"></script> 
<script src="vendor/angular2/bundles/router.dev.js"></script> 

<script> 
System.config({ 
    packages: { 
    app: { 
     format: 'register', 
     defaultExtension: 'js' 
    } 
    }, 
    paths: { 
    dragula: 'vendor/dragula/dist/dragula.min.js' 
    } 
}); 
System.import('app.js').then(null, console.error.bind(console)); 
</script> 

Когда я импортировать Dragula как это:

import * as dragula from 'dragula'; 

и попытаться использовать я получаю dragula is not a function ошибка

ответ

0

В самом деле переменная dragula действительности не является функцией. Вот содержание этого объекта:

Object {__useDefault: true} 
    __useDefault:true 
    default: dragula(initialContainers, options) 

Вы должны использовать следующие импортировать и использовать функцию Dragula:

import * as dragula from 'dragula'; 

dragula.default(...); 

Смотрите эту plunkr: https://plnkr.co/edit/J0POatroAhqfV9LDQQ5g?p=preview.

+0

Когда я пытаюсь использовать подобное dragula.default(), я получаю ошибку: «Свойство« default »не существует в типе« Dragula ». Я установил 'typings install dragula --save --ambient', может быть, проблема в нем. – neilhem

+0

Это проблема при компиляции или во время выполнения? –

+0

В компиляции я использую компоненты ng2-dragula внутри своего приложения. – neilhem