将JSON数组中的每个对象绑定到a<;的knockout.js数据;td>;

将JSON数组中的每个对象绑定到a<;的knockout.js数据;td>;,json,data-binding,knockout.js,Json,Data Binding,Knockout.js,因此,假设我有一个web服务,它返回一个序列化为JSON的C#列表,那么我在客户机视图模型中得到的是一个JSON数组: [ {"Id": 1, "Name": "John", "Age": 30}, {"Id": 2, "Name": "Mike", "Age": 25}, {"Id": 3, "Name": "Lana", "Age": 28}, ] 虽然这不是我正在处理的实际数据,但对于这个示例来说已经足够了 通过使用knockout.js,我试图实现的是将上述数组

因此,假设我有一个web服务,它返回一个序列化为JSON的C#列表,那么我在客户机视图模型中得到的是一个JSON数组:

[
    {"Id": 1, "Name": "John", "Age": 30},
    {"Id": 2, "Name": "Mike", "Age": 25},
    {"Id": 3, "Name": "Lana", "Age": 28},
]
虽然这不是我正在处理的实际数据,但对于这个示例来说已经足够了

通过使用knockout.js,我试图实现的是将上述数组(viewmodel)中的每个
元素绑定到视图中表内的一个td标记。因此,在本例中:

<table>
    <tr>
        <td></td> // this would represent John
        <td></td> // this would represent Mike
        <td></td> // this would represent Lana
    </tr>
</table>

//这将代表约翰
//这代表迈克
//这代表拉娜
重要的是要注意,我们不希望只将元素的属性数据绑定到td的属性,如

<td data-bind="text: vm.Name">


我希望td标记以某种方式表示整个person元素(object)。

您也可以在表中的每个循环中使用这样的pre标记

<pre data-bind="text: JSON.stringify(ko.toJS($data), null, 2)"></pre>

完整示例如下所示:

<table data-bind="foreach: objects">
    <tr>
        <td>
          <pre data-bind="text: JSON.stringify(ko.toJS($data), null, 2)"></pre>
        </td>
    </tr>
</table>


这将为您提供一个带有表中JSON对象的预标记。我假设值的名称是“objects”,但您可以将其更改为任何需要的名称。

这个问题的实际答案是另一个问题,类似于这个问题,也是我提出的。以下是链接: