【问题标题】:using dragula with systemjs将 Dragula 与 systemjs 一起使用
【发布时间】:2016-04-27 09:05:42
【问题描述】:

我正在尝试在带有 angular-cli 的 angular2 应用程序中使用 Dragula。

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

【问题讨论】:

    标签: angular systemjs dragula


    【解决方案1】:

    事实上,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

    【讨论】:

    • 当我尝试像这样使用 dragula.default() 时出现错误:'Dragula' 类型上不存在'属性'默认'。我安装了typings install dragula --save --ambient,可能有问题。
    • 是编译时的问题还是运行时的问题?
    • 在编译时我在我的应用程序中使用 ng2-dragula 组件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2016-10-09
    • 2020-03-01
    • 1970-01-01
    • 2015-09-13
    • 2015-01-07
    相关资源
    最近更新 更多