【问题标题】:Sorting Table within Ember.jsEmber.js 中的排序表
【发布时间】:2013-08-14 23:35:35
【问题描述】:

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

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

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

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

【问题讨论】:

标签: javascript ember.js


【解决方案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

【讨论】:

  • ember-table 的问题是,据我在他们的文档中看到的,它没有任何搜索工具。如果你有一个数据集,比如说 1M 行,你能做什么?由于渲染到视口中的方式,您甚至无法执行 Ctrl+F...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
相关资源
最近更新 更多