首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >requireJS无法加载Handsontable

requireJS无法加载Handsontable
EN

Stack Overflow用户
提问于 2017-05-31 09:52:51
回答 2查看 524关注 0票数 0

我已经挣扎了很长一段时间,想要找到能与requireJS一起工作的手柄。

就其本身而言,可操作的工作非常棒。

我得到以下错误:

代码语言:javascript
复制
app.js:37 Uncaught TypeError: Handsontable is not a constructor
    at app.js:11
    at Object.execCb (require.js:1693)
    at Module.check (require.js:881)
    at Module.<anonymous> (require.js:1136)
    at require.js:134
    at require.js:1186
    at each (require.js:59)
    at Module.emit (require.js:1185)
    at Module.check (require.js:936)
    at Module.enable (require.js:1173)

下面是一个最简单的例子。我的html代码:

代码语言:javascript
复制
<html lang="en"><head>
  <script data-main="static/js/app" src="static/js/require.js">
</script>
  <link rel="stylesheet" media="screen" href="static/css/handsontable.css">
</head>
    <body>
        <div id="example"></div>
    </body>
</html>

我的app.js代码(编辑:根据Nhor的答案):

代码语言:javascript
复制
requirejs.config({
    baseUrl: 'static',
    waitSeconds: 10,
    paths: {
        // Handsontable full's requirements is in the plugin directory/
        // I shouldn't need them, but incase.
        'pikaday': 'plugins/pikaday/pikaday',
        'zeroclipboard': 'plugins/zeroclipboard/ZeroClipboard',
        'moment': 'plugins/moment.min',
        // Handsontable is directly in the static folder
        'handsontable': 'handsontable'
    }
});
requirejs([
    'handsontable'
], function(
    Handsontable
) {
    var data = [['', 'Kia', 'Nissan', 'Toyota', 'Honda'],
                ['2008', 10, 11, 12, 13],
                ['2009', 20, 11, 14, 13],
                ['2009', 30, 15, 12, 13]
              ];
    var hot = new Handsontable(document.getElementById('example'), {
      data: data,
      colHeaders: true,
      rowHeaders: true,
      minSpareRows: 1,
      minSpareCols: 1,
    });
});

根据hansontable的文档,手持设备支持https://github.com/handsontable/handsontable。在我看来,我对requireJS有一些不理解的地方。在我导入的其他模块中,我没有遇到过这个问题。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-08 13:59:26

你用的是哪个版本?今天发生了完全相同的问题,恢复到0.31.2版本修复了它。使用0.32.0以下的任何内容都很好。我知道这可能不是一个完美的解决方案/反应,但它是有效的。

票数 1
EN

Stack Overflow用户

发布于 2017-05-31 19:41:14

您错过了handsontable库路径。RequireJS需要知道要使用的所有文件的路径,这意味着您必须在requirejs.config函数中指定路径。这些路径可以指向本地文件系统,也可以通过HTTP指向远程资源。你可以在这里读到更多关于它的信息:http://requirejs.org/docs/api.html#jsfiles

@编辑

实际上,我犯了一个小错误,说路径可以指向文件系统。这是因为我习惯于在HTTP路由中反映我的文件系统目录结构,但实际上路径应该指向文件驻留在您的HTTP服务器上的位置,因此,例如,如果地址是http://127.0.0.1:8000/static/js/handsontable.js,则baseUrl应该是./static/js

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44281475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档