2014-02-06 96 views
0

我有一个JSON对象通过jQuery AJAX从ASMX服务返回。当我尝试在表格中显示它时,没有任何显示。我可能会做错什么?显示嵌套阵列

在此先感谢。

返回的JSON是...

[{\"id\":1488,\"name\":\"Baby Books\", 
    \"categories\": 
    [{\"id\":152,\"name\":\"Activity Books\",\"value\":\"Ignore\"}, 
    {\"id\":167,\"name\":\"Bedtime and Dreams\",\"value\":\"Ignore\"}]}, 
{\"id\":1489,\"name\":\"Story Books\", 
    \"categories\": 
    [{\"id\":1506,\"name\":\"Games - Floor Puzzles\",\"value\":\"Ignore\"}]}] 

的JS代码显示为(其中从调用返回gorupJson)...

var viewModel = { 
    groups: ko.observableArray([]), 
}; 
viewModel.groups(groupJson) 
ko.applyBindings(viewModel); 

页面内容是...

<table width="100%" > 
<tbody data-bind="foreach: groups" style="width:100%"> 
    <tr> 
    <td data-bind="text: name"></td> 
    <td> 
    <ul data-bind="foreach: categories"> 
     <li> 
     <a><span data-bind="text: name"></span></a> 
     </li> 
    </ul> 
    </tbody> 
</table> 

回答

0

您的JSON是不会自动转换成阁收藏。 所以你需要应用映射到这个转换,可能就像这个ko.mapping.fromJS(data)。当你这样做,你的域ID,名称,值将在ko.observable

成为如果您想了解更多关于在淘汰赛映射插件,看看http://knockoutjs.com/documentation/plugins-mapping.html

0

首先,你的JSON是无效的。 退房小提琴:http://jsfiddle.net/YNdmh/

var groupJson = [{"id":1488,"name":"Baby Books","categories": 
    [{"id":152,"name":"Activity Books","value":"Ignore"}, 
    {"id":167,"name":"Bedtime and Dreams","value":"Ignore"}]}, 
    {"id":1489,"name":"Story Books","categories": 
    [{"id":1506,"name":"Games - Floor Puzzles","value":"Ignore"}]}]