如何对Ember.js中的许多项目进行排序
How to sort hasMany items in Ember.js
我有这样的结构:
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();
}
});
,在视图中,我像这样列出董事会项目:
{{#each boardItems}}
我想做的是按日期排序boardItems,我找不到这样做的方法…什么好主意吗?
谢谢!
你应该在视图后面的控制器中创建一个computed属性
h2控制器 App.BoardShowController = Em.ObjectController.extend({
sortedBoardItems: function(){
return this.get('boardItems').sortBy('date');
}.property('boardItems.@each.date')
});
模板{{#each sortedBoardItems}}
App.BoardShowController = Em.ObjectController.extend({
sortedBoardItems: function(){
return this.get('boardItems').sortBy('date');
}.property('boardItems.@each.date')
});
{{#each sortedBoardItems}}
您可以用{{render}}
助手包装{{#each}}...{{/each}}
循环,并在控制器中进行排序:
App.BoardItemsController = Ember.ArrayController.extend({
sortProperties: ['date'],
sortAscending: false // newest first
});
模板:
{{#render "boardItems" boardItems}}
{{#each arrangedContent}}
Title: {{title}}
...
{{/each}}
{{/render}}
使用computed属性进行排序将导致每次更改boardItems
时完全重新计算已排序的数组。这里描述的arrangedContent
方法不是这种情况。
相关文章:
- 正在将数据主题添加到所有项目
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- 如何检查管道中未定义的项目
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 学生搜索项目jquery/javascript
- 如何获取不属于我项目的上一页的URL
- Dojo:访问dijit.form.Select中单击的项目
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- 我需要为我的朋友在这个项目上提供帮助
- 如何从 HTML 查询中删除项目
- 在Meteor项目中安装并包含npm模块后出错
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- 将单击事件添加到附加的项目中
- jQuery无限循环,动画化许多项目
- AngularJS和REST:执行删除操作,发送许多要删除的项目的数组
- 从 Dropbox 中选择许多项目,并让它们显示在文本框中
- 如何将项目列表从创建许多选择标记的指令添加到控制器范围
- 如何对Ember.js中的许多项目进行排序
- 如何在许多Visual Studio(2013)项目中处理TypeScript类型定义?
- AppleScript JXA过滤表与许多行相同的名称,但不同的项目