2016-04-27 9 views
0

Ich versuche, Dragula in angular2 App mit eckigen-Cli zu verwenden.mit Dragula mit 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> 

Wenn ich dragula wie folgt importieren:

import * as dragula from 'dragula'; 

und versuchen zu verwenden, erhalte ich dragula is not a function Fehler

Antwort

0

In der Tat die dragula Variable nicht wirklich eine Funktion ist. Hier ist der Inhalt dieses Objekts:

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

sollten Sie verwenden die folgenden zu importieren und verwenden, um die dragula Funktion:

import * as dragula from 'dragula'; 

dragula.default(...); 

dieses plunkr Siehe: https://plnkr.co/edit/J0POatroAhqfV9LDQQ5g?p=preview.

+0

Wenn ich versuche, so zu verwenden dragula.default() bekomme ich Fehler: 'Eigenschaft' Standard 'existiert nicht auf den Typ' Dragula '. Ich installierte 'typings install dragula --save --ambient', vielleicht Problem darin. – neilhem

+0

Ist es ein Problem bei der Kompilierung oder zur Laufzeit? –

+0

Bei der Kompilierung verwende ich ng2-Dragula-Komponenten innerhalb meiner App – neilhem