javascript - 如何对 Ember-Model 支持的 ArrayController 进行排序?

标签 javascript ember.js ember-model

在使用 Ember-Model 对我的 ArrayController 进行排序之前,使用 sortProperties 和 sortAscending 可以按预期工作。最近我改用了 Ember-Model,排序功能不再起作用了。

到目前为止的代码:

App.Movie = Ember.Model.extend({
  rating: Ember.attr(),
  title: Ember.attr(),
  watched: Ember.attr(),
  year: Ember.attr(),
});

App.MoviesIndexController = Ember.ArrayController.extend({
  sortProperties: null,
  sortAscending: null,

  actions: {
    sortByAttribute: function (attr) {
      if (this.get('sortProperties')) {
        if (this.get('sortProperties')[0] === attr) {
          this.toggleProperty('sortAscending');
        } else {
          this.set('sortProperties', [attr]);
        }
      } else {
        this.set('sortProperties', [attr]);
        this.set('sortAscending', true);
      }
    }
  }
});

<table>
  <thead>
    <tr>
      <th {{action "sortByAttribute" "year"}}>Year </th>
    </tr>
  </thead>
  ...
</table>

有什么想法吗?

谢谢

最佳答案

看起来它对我有用,这是一个 jsbin 示例

http://emberjs.jsbin.com/eKibapI/8/edit

关于javascript - 如何对 Ember-Model 支持的 ArrayController 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162930/

相关文章:

javascript - 通过 hasMany 关系访问 ember-model 对象中的相关集合

ember.js - Ember 数据混合 find()、query()、findAll()

javascript - Ember.js ember-model 泄漏问题?

javascript - 将图像转换为已加载的 Canvas

javascript - 超链接目标

javascript - [Vue警告] : Failed to resolve component when tried to create global component

docker - 无法启动运行 ember.js 镜像的 docker 容器,node_modules 为空

javascript - 如何避免安装和更新 Vue 组件之间的重复

javascript - 如何在 Ember.js 中创建一个计算属性来查看单个 Ember 数据属性是否脏?

javascript - Ember 初始化后 Ember.js 前端 javascript 执行