0

angular-cliを使用してangular2アプリでドラグラを使用しようとしています。

<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>

このようにドラグラをインポートすると:

import * as dragula from 'dragula';

使用しようとするとdragula is not a functionエラーが発生します

4

1 に答える 1

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

于 2016-04-27T09:20:11.627 に答える