0

我试图通过单击列标题来弄清楚如何对表格进行排序。我尝试在我的 ViewModel 中创建一个方法,该方法将按名称排序以开始,但没有成功。

我尝试了以下方法,但它似乎并没有真正做任何事情:

list.sort(function(left, right) { return left.name== right.name? 0 : (left.name< right.name? -1 : 1) })

这是我当前的代码:

http://jsfiddle.net/TsgyJ/

例如,我想单击“名称”标题并将其按升序排序,然后再次单击并对其进行降序排序。

4

1 回答 1

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);
};
于 2013-05-30T19:36:58.897 回答