我想用上下按钮重新订购我的模型。 什么是执行这些操作的余烬?
这是一个jsbin:http://emberjs.jsbin.com/haxegihaye/9/
感谢您的帮助。
为了更清楚,我只想在我的"模型"中选择一个项目。这是一个数组,只是向上或向下这个项目。我想,我只需要更改数组中项目的索引,但我不知道如何使用ember执行此操作?
答案 0 :(得分:0)
您可以使用sortProperties: propertyName
& sortAscending: true/false
以下是Demo
我修改了您的模型以包含id
字段,以便按id
排序。
App.PostsRoute = Ember.Route.extend({
model: function() {
return [
{id: 1, title: 'post 1'},
{id: 2,title: 'post 2'},
{id: 3,title: 'post 3'},
{id: 4,title: 'post 4'},
{id: 5,title: 'post 5'}
];
}
});
你的控制器会像这样 -
App.PostsController = Ember.ArrayController.extend({
itemController: 'post',
selectedPost: null,
actions: {
up: function() {
this.set('sortProperties', ['id']);
this.set('sortAscending', true);
if (this.get('selectedPost')) {
var selectedPost = this.get('selectedPost');
var index = this.get('model').lastIndexOf(selectedPost);
if (index > 1) {
// up
}
}
},
down: function() {
this.set('sortProperties', ['id']);
this.set('sortAscending', false);
if (this.get('selectedPost')) {
var selectedPost = this.get('selectedPost');
var index = this.get('model').lastIndexOf(selectedPost);
if (index < this.get('model.length')) {
// down
}
}
}
}
});