无法在 ngHandsontable 中设置未定义的属性“数据行”

Posted

技术标签:

【中文标题】无法在 ngHandsontable 中设置未定义的属性“数据行”【英文标题】:Cannot set property 'datarows' of undefined in ngHandsontable 【发布时间】:2016-10-14 08:55:35 【问题描述】:

ngHandsontable 组件有问题:我收到此错误:

无法设置未定义的属性“数据行”

尝试初始化表时。我正在使用的代码是这样的:

<hot-table rowHeaders="true" startRows= "7" manualColumnResize="true" datarows="td"
                           settings="  colWidths: [150, 150, 150, 150,150], colHeaders: colHeaders, contextMenu: ['row_above', 'row_below', 'remove_row'], afterChange: afterChange ">
  <hot-column data="COLUMN_1" title="'COLUMN_1'"></hot-column>
  <hot-column data="COLUMN_2" title="'COLUMN_2'"></hot-column>
  <hot-column data="COLUMN_3" title="'COLUMN_3'"></hot-column>
  <hot-column data="COLUMN_4" title="'COLUMN_4'"></hot-column>
  <hot-column data="COLUMN_5" title="'COLUMN_5'"></hot-column>
</hot-table>

在控制器中:

$scope.td = [
    'COLUMN_1': ''
];

请注意,settings 对象有一些我的控制器中不存在的默认属性(colHeadersafterChange)。我已经尝试了几乎所有的东西:我已经删除了 settings 属性、datarows 属性、所有属性!错误信息没有任何变化。

查看 ngHandsontable 的源代码,我发现这是有问题的行:

angular.forEach(bindingsKeys, function(key) 
  var mode = _this.scope[key].charAt(0);

  _this.$$isolateBindings[key] = 
    attrName: _this.scope[key].length > 1 ? _this.scope[key].substr(1, _this.scope[key].length) : key,
    collection: key === 'datarows',
    mode: mode,
    optional: false
  ;
);

错误在于_this.$$isolateBindings[key]_this.$$isolateBindings 未定义。

我对此一无所知,我发现我的配置与指令示例略有不同。

我实际上使用的是 0.9.0 版本,以及 Handsontable 0.23.0(免费)和 AngularJS 1.2.28。

我在这里错过了什么?

谢谢。

【问题讨论】:

ngHandsontable 0.12.0 有同样的问题。 【参考方案1】:

我刚刚发现了这个:

https://github.com/handsontable/ngHandsontable/blob/develop/index.html#L69

注意:ngHandsontable 在 1.3 及更高版本中支持 angular。

这是因为您使用的是较旧的 Angular 版本。我刚刚升级到 Angular 1.5.8,然后它就可以工作了。

【讨论】:

太棒了!我没有找到那个评论。对此的“解决方案”是不使用该库。由于不兼容,我认为我必须等到我可以升级到更新的 Angular 版本。谢谢!

以上是关于无法在 ngHandsontable 中设置未定义的属性“数据行”的主要内容,如果未能解决你的问题,请参考以下文章

无法在键值存储中设置未定义的属性

无法在 Vue.js 中设置未定义的属性“产品”[重复]

错误 _renderer.setElementStyle “无法在 [null] 中设置未定义的属性‘背景颜色’”

ngHandsontable:日期格式在热列指令中不起作用

使用 nghandsontable 访问 handsontable 方法/属性

QuickBooks错误消息:预计会有行/货架,但已选择库存站点