将JSON数组中的每个对象绑定到a<;的knockout.js数据;td>;
因此,假设我有一个web服务,它返回一个序列化为JSON的C#列表,那么我在客户机视图模型中得到的是一个JSON数组:将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,我试图实现的是将上述数组
[
{"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”,但您可以将其更改为任何需要的名称。这个问题的实际答案是另一个问题,类似于这个问题,也是我提出的。以下是链接: