我有这个结构:
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/