来自设置对象的Handsontable自动完成源(针对每个单元格)

时间:2015-09-01 09:36:39

标签: javascript angularjs handsontable

我正在尝试从对象获取每个单元格的自动完成设置。使用对象中的属性名称指向每个对象的数据属性适用于所有其他类型,但不适用于自动完成的“选项”。这是我的设置对象的一个​​例子,我将其传递给Handsontable初始化:

      var settings = {
        columns: [
          {data: 'base_image', type: 'text', renderer: HsCustomRenderers_image},
          {data: 'description', type: 'text', renderer: HsCustomRenderers_text},
          {data: 'name', type: 'text', renderer: HsCustomRenderers_text},
          {data: 'price', type: 'text', renderer: HsCustomRenderers_number},
          {data: 'quantity', type: 'text', renderer: HsCustomRenderers_decimal},
          {data: 'sku', type: 'text', renderer: HsCustomRenderers_text},
          {data: 'status', type: 'text', renderer: HsCustomRenderers_text},
          {type: 'autocomplete', strict: false, source: 'visibility.value.selected')
          // {data: 'visibility.value.selected', type: 'autocomplete', strict: false},
        ],
        colHeaders: ['Image', 'Descriptions', 'Name', 'Price', 'Quantity', 'SKU', 'Status', 'Visibility']
        // More settings to follow
      };

我说的是对象的最后一行,特别是这部分:

来源:'visibility.value.selected'

在数据对象中,这是一个数组,但是当传递给Handontable时,它将作为字符串传递,从而阻止它工作:(

以下是我在Angular指令的链接函数中初始化HOT的方法:

        var hot = new Handsontable(document.getElementById('datagrid'), {
          data: scope.gridData,
          rowHeaders: true,
          colHeaders: settings.colHeaders,
          contextMenu: true,
          columns: settings.columns
        });

此对象将从API返回,并且当前位于我的Angular控制器中。也许我应该解析控制器中的属性?

P.S。:我很抱歉没有这么好的英语,并会在必要时提供更多细节和代码!

1 个答案:

答案 0 :(得分:1)

是的,在JS方面解析它,作为源的字符串不会起作用。你可以使用像

这样的东西
JSON.parse(dataFromServer)

那应该将它解析为一个对象,然后你应该修改它以适合sources格式。