在表格单元格中每行显示一个JSON数组结果

时间:2014-12-17 15:26:35

标签: javascript c# html knockout.js

我有一个显示“空气段”列的表格。空气段作为服务器的JSON阵列(见图),我需要在表格单元格中每行显示一个空气段列的内容。现在它显示为带逗号的完整字符串(见下图)。

JSON document

所以HTML代码如下:

<!-- ko foreach: $parents[0].outputsToDisplay($data) -->
    <td>
        <span data-bind="foreach: $data, visible: $parents[2].outputs()[$parent.index()].internalname ==='air_segments', text: splitAirSegments($data)"><br></span>
   </td>
<!-- /ko -->

外部'for each'将$ data提供给td,这是要在表格中填充的结果。

可见绑定属性确保仅填充列air_segments。

outputs()是js文件中的一个可观察数组。

我需要编写一个JS方法“splitAirSegments”,这样它就可以逐个返回空气段,并在“br”的帮助下打破这条线,最终使空气段在单个表格单元格中每行显示一个

我尝试了什么:

self.splitAirSegments = function (arr) {
    return arr;
}

我理解的方式是,'span'中的'each'将每个空中段发送到此函数,只要函数返回值,HTML就会显示换行符。

什么是正确的方法?是否还有其他方法可以分割空气段(以分隔符作为逗号),现在可以用逗号显示所有空气段。

enter image description here

请帮助。

1 个答案:

答案 0 :(得分:0)

根据用户@ Origineil的fiddle,以下内容适用于我:

<!-- ko foreach: $parents[0].outputsToDisplay($data) -->
   <td>

    <span data-bind="if: $parents[1].Outputs()[$index()].InternalName === 'air_segments'">
        <span data-bind="foreach: $data">
            <span data-bind="text: $data"></span>
            <br/>
        </span>           
     </span>

  </td>
<!-- /ko -->