好吧,我仍然对遍历 javascript 对象有点模糊,所以希望你们能帮我解决这个问题。我正在使用 jQuery 和 Knockout 吐出作为 JSON 发送的服务器数据。一切似乎都很好,除了数组的实际值似乎没有应用,但我确实得到了表格行的构造并且没有错误,所以它必须与我的 Guest(data){} 函数一起使用。我觉得我可能将它指向键而不是值。看看我的代码和 JSON 结构,告诉我你的想法。
<table>
<tbody data-bind='foreach: guests'>
<tr>
<td data-bind='value: name'></td>
<td data-bind='value: email'></td>
<td data-bind='value: guests'></td>
<td data-bind='value: code'></td>
</tr>
</tbody>
</table>
<body>
</body>
<script type="text/javascript">
function Guest(data){
this.name = ko.observable(data.name);
this.email = ko.observable(data.email);
this.guests = ko.observable(data.guests);
this.code = ko.observable(data.code);
}
function guestListViewModel(){
//Data
var self = this;
self.guests = ko.observableArray([]);
$.getJSON('/php/guests_json.php', function(json) {
var mappedGuests = $.map(json, function(item) { return new Guest(item) });
console.log(mappedGuests);
self.guests(mappedGuests);
});
}
ko.applyBindings(new guestListViewModel);
</script>
这是服务器端的 JSON 的样子。
[{
"id":"8",
"name":"Greg",
"email":"greg1@google.com",
"guests":"1",
"code":"GVTRKwRPXD2rETD10BMCWWAB",
"checked_in":"0"},
{
"id": ....