不能让每个人都去工作
KnockoutJS: Can't get foreach to work
我有一个对象,我试图通过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是得到JSON数据从php脚本和它的结构像这样:"09"、"10"answers"36"为分区id。每个分区都有一个'partition'变量,它显示分区的名称。实际的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
我在这里做错了什么?
你不能foreach
一个对象。只能对阵列进行foreach
操作。你发布的JSON是一个有一堆编号属性的对象,这就是为什么$root[36]
工作,因为36
是对象上的属性名称,而不是数组的索引。
如果你的对象是一个数组,你的代码将工作
相关文章:
- data th JS每页只工作一次
- remove仅每隔一次进行儿童工作
- 数据表自动生成的序列号无法正常工作.对于每一页
- jQuery每5个工作小时重置一次颜色模式
- Bootstrap popover destroy&recreate 仅每秒工作一次
- 在页面加载时禁用 CSS 动画,但每隔一段时间工作一次
- 在 Jquery 中为什么它不会在 while 循环中提醒每个人
- 跟踪使用我的代码的每个人
- setInterval()是如何工作的?我可以用它每小时更换一次图像吗
- 有没有一种简单的方法来转换“;字体"style属性添加到其中的每一个'他的个人风格
- 每5秒自动刷新一个DIV代码不工作
- 第一次函数是return Undefined,每隔一次它就工作一次?使用Jquery、Javascript、Ajax
- Ajax请求只在每隔一次工作
- JavaScript在每帧不工作的对象中添加太多的变量
- 每一个都不像车把设想的那样工作
- Javascript函数正确工作8次,然后每隔一次
- 创建由每个子数组的最大值组成的数组不能按预期工作
- 科尔多瓦不能和三个人一起工作
- javascript Cookie每24小时在窗口打开代码不工作
- 如何拯救每个人's在文本文件中的结果