我正在尝试通过单击列标题来弄清楚如何对表进行排序。我尝试在我的ViewModel中创建一个方法,它只是按名称排序才能开始,但没有成功。
我尝试了以下内容,但它似乎没有做任何事情:
list.sort(function(left, right) { return left.name== right.name? 0 : (left.name< right.name? -1 : 1) })
这是我目前的代码:
例如,我想点击“name”标题并按升序排序,然后再次点击并将其排序为Descending。
答案 0 :(得分:1)
以下是您的工作示例:http://jsfiddle.net/tkirda/TsgyJ/1/
HTML:
<thead>
<th data-bind="click: sort.bind($data, 'id') ">ID</th>
<th data-bind="click: sort.bind($data, 'name') ">Name</th>
<th data-bind="click: sort.bind($data, 'email') ">Email</th>
<th data-bind="click: sort.bind($data, 'city') ">City</th>
<th data-bind="click: sort.bind($data, 'created') ">Created</th>
</thead>
JavaScript的:
self.sort = function (key) {
sortDir = sortDir * -1;
self.list.sort(function (a, b) {
return sortDir * (a[key] == b[key] ? 0 : (a[key] < b[key] ? -1 : 1));
});
self.moveToPage(1);
};