将JSON字符串拆分为可观察数组

将JSON字符串拆分为可观察数组,json,knockout.js,Json,Knockout.js,下面的提琴应该显示项目列表 但是,列表是字符串格式的,尚未拆分。我试图把他们分开,但没有成功 我尝试的一件事是在map函数中将字符串拆分为一个可观察的数组。这是正确的方法吗 self.splitValues = ko.observableArray(); var mappedItemLists = $.map(data, function(i) { return new ItemList(i.title, self.splitValues(i.item.split(" "))) });

下面的提琴应该显示项目列表

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

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

self.splitValues = ko.observableArray();

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


马特的回答被接受。

不完全清楚你到底想在这里做什么。这就是你想要的吗:

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

        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>
如果希望嵌套列表显示为列表