添加过滤器按钮以排序条目

时间:2014-08-05 06:42:19

标签: sorting ember.js filter javascript

所以我有这个查询为我提取数据:

App.ListRoute = Ember.Route.extend({
model: function() { return $.getJSON('php/getlines.php'); }});

我在我的句柄栏中显示了这段代码:

<tbody>
{{#each content}}
{{view App.lineItem contextBinding="this"}}
{{/each}}
</tbody>

我正在考虑将我的html字段设为一个按钮,单击该按钮会对条目进行排序:

<th class="center"{{action 'sortBy' 'invoice'}}>Invoice</td>

按功能排序:

sortBy: function(property) {
  this.set('sortProperties', [property]);
  this.set('sortAscending', !this.get('sortAscending'));
 }

但是,我一直收到这个错误:

错误:没有处理事件'sortBy'。

如果单击该按钮,我不确定如何对条目进行排序?

2 个答案:

答案 0 :(得分:0)

在每个循环中,提及itemController="ListsController"并在ListsController中编写sortBy函数。

基本上,你会指出动作应该冒出哪个控制器。

答案 1 :(得分:0)

正如@Ajey所提到的,您必须使用ListsController动作创建sortBy。已为sortBy定义ArrayController(请参阅http://emberjs.com/api/classes/Ember.ArrayController.html#method_sortBy),但我非常确定添加相同名称的操作不会覆盖它。

App.ListsController = Ember.ArrayController.extend({
  actions: {
    sortBy: function(property) {
      this.set('sortProperties', [property]);
      this.set('sortAscending', !this.get('sortAscending'));
    }
  }
});