2014-02-19 41 views
1

下面的提琴应该显示项目列表。将JSON字符串拆分为可观察数组

但是,这些列表是字符串格式,尚未拆分。我试图分裂他们没有成功。

我试过的一件事是将字符串拆分为map函数中的可观察数组。这是正确的方法吗?

self.splitValues = ko.observableArray(); 

var mappedItemLists = $.map(data, function(i) { 
    return new ItemList(i.title, self.splitValues(i.item.split(" "))) 
}); 

http://jsfiddle.net/bGsRH/428/

马特的答案接受。

回答

2

不完全清楚你实际想要在这里做什么。这就是你要寻找的:

http://jsfiddle.net/bGsRH/429/

我这样做是为了分割你的价值观:

 var mappedTasks = $.map(data, function(item) { 
      return new ItemList({ 
       title: item.title, 
       items: item.items.split(" ") 
      }); 
     }); 

(注:你可以有也只是改变了ITEMLIST函数取两个参数)

,然后在绑定,您需要foreach绑定:

<ul data-bind="foreach: itemlists, visible: itemlists().length > 0"> 
    <li><span data-bind="text: title"></span> 
     <ul data-bind="foreach: items"> 
      <li data-bind="text: $data"></li> 
     </ul> 
    </li> 
</ul> 

如果您希望嵌套列表显示为列表。