2013-04-26 73 views
0

我有这样一个简单的json文件。如何使用knockout在树模型中显示json数据?

"Test": 
    [ 
     { 
      "id":"1", 
      "type" : "test1" 
     }, 
     { 
      "id":"1.1",  
      "type":"test2" 
     }, 
     { 
      "id":"1.1.1", 
      "type":"test3" 
     }, 
     { 
      "id":"1.1.2", 
      "type":"test3"     
     }] 

我想在树状模型中使用敲除来显示这些数据,如下所示。

 1 test1 
     1.1 test2 
     1.1.1 test3   
     1.1.2 test4 

我还没有看到我的要求的任何样品解决方案。任何人都可以指导我?谢谢。

+0

你将有你的数组转换成树状结构。基本上写简单的旧JavaScript来做到这一点,然后很容易与淘汰赛做到这一点。 – 2013-04-26 15:02:48

回答

2

如果你的数组排序正确,那么你可以使用style结合通过根据CSS规则申请左填充的项目元素:

<ul data-bind="foreach: test"> 
    <li data-bind="style: { paddingLeft: (id.length * 10) + 'px' }"> 
     <span data-bind="text: id"></span> 
     <span data-bind="text: type"></span> 
    </li> 
</ul> 

您可以检查它是如何工作在这里:http://jsfiddle.net/7vyfW/

这方法不会跟踪你的结构,所以如果你想创建一个可编辑列表是没有用的。但是如果你的任务只是显示一棵树,它就简单而有效。

+0

谢谢。它是如此简单:)我没有这样想:(但列表样式不工作。 – Shanthini 2013-04-29 11:13:53

+0

它可以完美兼容标识()。长度 – Shanthini 2013-04-29 11:23:29

+0

是的,如果'id'是可观的,那么你应该使用'ID()。 length'。 – 2013-04-29 11:39:00

相关问题