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

时间:2014-02-19 21:59:37

标签: json knockout.js

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

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

我尝试的一件事是将字符串拆分为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/

接受了Matt的回答。

1 个答案:

答案 0 :(得分: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>

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