Handsontable 自定义 object 数据

Handsontable custom object data

我正在尝试用 objects 填充 Handsontable。 例如:

var data = [
    [{title: 'A1', style: '...'}, {title: 'B1', style: '...'}],
    [{title: 'A2', style: '...'}, {title: 'B2', style: '...'}],
];

现在我希望 Handsontable 只将标题属性呈现到单元格中而不是样式中。 style 属性用于呈现具有特殊格式的单元格。 如何告诉 Handsontable 只使用标题属性?

handsontable 数据并非旨在为单元格提供样式。要定义单元格样式,我建议您穿这个 link

http://docs.handsontable.com/0.15.1/demo-conditional-formatting.html

但如果您的想法是隐藏列,例如代码,我将保留此示例

<script>

var options = {
 columns: CutObject(data)
}

function CutObject(data){
 return data.slice(1);//hide firt column
}

</script>
var data = [
    [{title: 'A1', style: '...'}, {title: 'B1', style: '...'}],
    [{title: 'A2', style: '...'}, {title: 'B2', style: '...'}],
];

var filterArrays = function (arys) {
    let ret = [];
    for (let i = 0; i < data.length; i++) {
        let ary = [];
        for (let j = 0; j < data[i].length; j++) {
            ary.push(data[i][j].title);
        }
        ret.push(ary);
    }
    return ret;
}

var titles = filterArrays(data);

这里的标题可以是

titles = [
    ['A1', 'B1'],
    ['A2', 'B2']
];

因此,您可以使用标题作为数据。并为每个单元格设置样式,请检查以下内容。

hot = new Handsontable(container, {
    data: titles,
    ...
    cells: function (row, col, prop) {
        cellProperties.renderer = function (instance, td, row, col, prop, value, cellProperties) {
            Handsontable.renderers.TextRenderer.apply(this, arguments);
            td.style = data[row][col].style;
        };
    },
    ...
});