我有这个结构:

App.Router.map(function() {
    this.resource('board', {path: '/board'}, function() {
        this.route('new', {path: '/new'});
        this.route('show', {path: '/show/:board_id'});
    });
});

App.Board = DS.Model.extend({
    title: DS.attr('string'),
    initialAmount: DS.attr('number'),
    initialDate: DS.attr('date'),
    boardItems: DS.hasMany('BoardItem'),
    _csrf: DS.attr()
});

App.BoardItem = DS.Model.extend({
    title: DS.attr('string'),
    income: DS.attr('number'),
    outcome: DS.attr('number'),
    date: DS.attr('date'),
    itemType: DS.attr('string'),
    board: DS.belongsTo('Board')
});

App.BoardShowRoute = Ember.Route.extend({
    model: function(params) {
        return this.store.find('board', params.board_id).sort();
    }
});

在 View 中,我列出了这样的板项:
{{#each boardItems}}

我想要做的是按日期对 boardItems 进行排序,但我找不到这样做的方法......
有任何想法吗?

谢谢!

最佳答案

您应该在 View 后面的 Controller 中创建一个计算属性
Controller

App.BoardShowController = Em.ObjectController.extend({
  sortedBoardItems: function(){
    return this.get('boardItems').sortBy('date');
  }.property('[email protected]')
});
模板
{{#each sortedBoardItems}}

关于javascript - 如何在 Ember.js 中对 hasMany 项目进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24099401/

10-14 07:06