我有一个对象,我试图用 foreach 循环,但我失败了(这就是 6 个月不编码对我的影响......)
这工作得很好:
<div data-bind="text: $root[36].partition"></div>
但是 foreach 对我不起作用。
<div data-bind="foreach: $root">
<div data-bind="text: $data.partition"></div>
</div>
我在我的 html 中得到的只是:
<div data-bind="foreach: $root"></div>
我的 viewModel 正在从 php 脚本获取 JSON 数据,其结构如下:09、10 和 36 是分区 ID。每个分区都有一个“分区”变量,它显示分区的名称。实际的 JSON 结构更深入,这里只是为了表示
top level
09
partition
vip
10
partition
vip
36
partition
vip
这是我的 JS。没什么特别的,我只是在玩
$(document).ready(function() {
var viewModel = {};
$.getJSON('/lbstat/read.php', function(data) {
viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
});
});
JSON:
{"23":{
"partition":"Prod New SVCs Partition",
"env_dc":"Prod",
"hosts":["server01.domain.com", "server02.domain.com"],
"vips":{
"124":{
"dc_endpoint":"ADX - Prod - Intranet",
"gw_port":"9007",
"vip_name":"adx-prd.domain.net"
},
"210":{
"dc_endpoint":"Msg - Prod - Internet",
"gw_port":"8013",
"vip_name":"messaging-prd.domain.com"
},
"211":{
"dc_endpoint":"Msg - Prod - Intranet",
"gw_port":"9013",
"vip_name":"messaging-prd.domain.net"}
},
}
}
此处提供完整的 JSON:http: //pastebin.com/zpNngr53
我在这里做错了什么?