2014-02-19 5 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

실제로 여기에서하고 싶은 것을 분명히 밝히지는 마십시오. 무엇을 찾고이되는 경우 :

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

(주 : 당신은 또한이 두 인수를 위해 ITEMLIST 기능을 변경할 수)

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

나는 당신의 값을 분할 이런 짓을 당신의 바인딩에서 다음

, 당신은 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> 
,

중첩 목록을 목록으로 표시하려는 경우.

관련 문제