0

我有一个使用来自服务器的数据生成的表。表格上的每一列顶部都有一个按钮,用于根据该列中的值将整个表格从高到低或从低到高排序。还有一个按字母顺序排序的名称列。

目前,我已经将所有这些都与把手连接起来,当您单击按钮时,它会对表格数据数组进行排序,然后重新插入模板并将其插入到页面中。

我正在尝试将其移至使用 ember.js。我的第一个问题是我的表数据数组不再是一个简单的数组,它是一个包含各种 get 和 set 方法以及其他东西的 ember 对象。如何使用我拥有的功能对其进行排序:

function sortAtoZ(arr, one, two) {
    arr.sort(function(a, b) {return a[one].localeCompare(b[two])});
}
4

1 回答 1

1

ember 数组控制器通过Sortable Mixin内置了对基本排序的支持。开箱即用,它支持使用 Ember.compare 按一个或多个属性进行排序,但可以使用自定义 sortFunction,例如:

App.TableController = Ember.ArrayController.extend({
  sortProperties: ['trackNumber'],
  sortAscending: true,
  sortFunction: function(a,b) {
    // your custom sort logic here
    // return 0 if the two parameters are equal, return a negative value if the first parameter is smaller than the second or return a positive value otherwise
  }
});

另外,如果您想对表格进行更高级的操作,请查看ember-table

于 2013-08-14T15:35:35.257 回答