【问题标题】:Meteor error, Handsontable not definedMeteor 错误,未定义 Handsontable
【发布时间】:2014-01-01 21:00:15
【问题描述】:

我已经从大气中安装了 Handsontable 包,并且在我的应用程序中定义表格可以正常工作,除非我尝试创建自定义单元格渲染器。

定义表中的违规代码是此列定义:

{
  type: { 
    renderer: function(instance, td, row, col, prop, value, cellProperties) {
      Handsontable.TextCell.renderer.apply(this, arguments);
      $(td).css({
        background: 'yellow'
      });
    }},
    //format: '0, 0.00 $',
    readOnly: true
  }

每当我尝试像上面的 Handsontable.Textcell.renderer.apply 那样进行 Hansontable 调用时,Meteor 都会抛出此错误:

Deps afterFlush 函数的异常:ReferenceError: Handsontable is not defined

我确实读过 Handsontable 使用 Jquery 1.9,但 Meteor 与 1.8 捆绑在一起。这可能是个问题吗?

我在 Handsontable 中看到的自定义单元格渲染器的每个示例都与我所拥有的类似,所以我对问题所在非常迷茫。我还使用最新版本创建了一个自定义包 Handsontable,但这也无济于事。

希望有任何帮助。谢谢!

【问题讨论】:

    标签: javascript jquery meteor handsontable


    【解决方案1】:

    这可能是 Handsontable 包中的一个错误。

    这一行:https://github.com/olragon/meteor-handsontable/blob/master/lib/jquery.handsontable.full.js#L13

    var Handsontable = {
    

    应该是

    Handsontable = {
    

    在流星文件中是变量范围的。如果您使用var 关键字,则其他文件无法访问它。这是您收到Handsontable is not defined 错误的部分原因

    您还必须通过在https://github.com/olragon/meteor-handsontable/blob/master/package.js#L6 之后添加以下行来导出它

    api.export("Handsontable");
    

    这样api就暴露在包外了。

    我已经提出了一个拉取请求,因此包维护者需要接受它并在环境中更新包,然后您可以运行 mrt update 并使用您现在使用的代码。

    如果您赶时间,您可以分叉包含更新的软件包并将其用作您的 Handsontable 软件包

    https://github.com/olragon/meteor-handsontable/pull/1

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 2015-05-05
      • 1970-01-01
      • 2014-05-08
      • 2015-03-08
      • 2017-06-11
      • 2016-09-20
      • 2015-02-26
      • 2016-10-24
      相关资源
      最近更新 更多