如何排序淘汰嵌套列表?

时间:2012-09-25 17:45:09

标签: jquery list sorting knockout.js nested

点击联系人编辑器:http://jsfiddle.net/rniemeyer/gZC5k/

如何根据电话号码进行排序?

我想要首页,移动,办公,传真等......

非常感谢任何想法。

2 个答案:

答案 0 :(得分:0)

我会尝试在加载数据和映射到视图模型结构时对它们进行排序。

例如,您可以在此处为每个联系人排序电话:

self.contacts = ko.observableArray(ko.utils.arrayMap(contacts, function(contact) {
    contact.phones.sort(function(a, b) {
        return a.type > b.type ? 1 : -1;   
    });

    return { 
        firstName: contact.firstName, 
        lastName: contact.lastName, 
        phones: ko.observableArray(contact.phones) 
    };
}));

示例:http://jsfiddle.net/rniemeyer/gZC5k/531/

答案 1 :(得分:0)

根据RP的回答延伸:

您可以将事件处理程序附加到type输入,以便在phone更改时移动type对象。我使用线性搜索,但随意实现二进制搜索。

修改小提琴:http://jsfiddle.net/zGKM2/