Meteor 错误,未定义 Handsontable

Posted

技术标签:

【中文标题】Meteor 错误,未定义 Handsontable【英文标题】:Meteor error, Handsontable not defined 【发布时间】: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,但这也无济于事。

希望有任何帮助。谢谢!

【问题讨论】:

【参考方案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

【讨论】:

以上是关于Meteor 错误,未定义 Handsontable的主要内容,如果未能解决你的问题,请参考以下文章

Meteor template.find 未定义

Angular2-meteor - 在订阅函数中使用排序的 find() 后未定义的变量

Meteor+AngularJs 示例

为啥没有定义 Meteor 模板对象?

未找到流星验证方法

流星:ReferenceError:IRC未定义