我在Knockout.js和960.gs中非常新手。

我正在获取JSON数据,如下所示:

[1,a1],[2,a2],... [12,a12]
[13,b13],[14,b14] ...... [24,b24]

我选了一个具有grid-12结构的div

当我用敲除.js绑定那个网格时,它显示如下:

a1     a2     a3    a4     a5    a6
a7     a8     a9    a10    a11   a12
b13    b14    b15   b16    b17   b18
b19    b20    b21   b22    b23   b24


我想要一个如下的输出,其中第一列将填充一个值,而稍后b值将开始填充其余网格:

a1  a5 a9  b13
a2  a6 a10 b14
a3  a7 a11 ...
a4  a8 a12 ...


怎么可能呢?
请帮助,在此先感谢。

最佳答案

一个非常有趣的问题。首先,基因剔除并不能直接支持这一点,因为这需要对基因剔除中不存在的数据有一定的了解。

经过几次尝试,我发现您需要一个中间步骤,将数据模型从一维数组转换为二维数组。这允许为每个绑定一个外部foreach绑定,并为每个绑定一个内部foreach绑定。对于最后一行,必须确保填满整个行,否则表格将无法正确显示。

这样做的代码是-

var rowIndex = 0;
var displayStructure = [];
var maxNumberCells = data.length;
var rowBreakCount = 24 / numberColumns;
while (rowIndex < (maxNumberCells + 1) / numberColumns) {
    var row = [];
    for (var column = 0; column < numberColumns; column++) {
        var i = rowIndex + rowBreakCount * column;
        var pushValue = (i < maxNumberCells) ? data[i] : '&nbsp;';
        row.push(pushValue);
    }

    displayStructure.push(row);
    rowIndex++;
}


我在http://jsfiddle.net/photo_tom/cGMa2/20/有一个可行的解决方案

关于javascript - 通过960.gs通过Knockout.js以Columner方式显示数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13184126/

10-09 07:28
查看更多