我无法从数组控制器获得sortProperties工作。我认为这是因为控制器需要排序的模型不是它在Ember CLI中默认接收的模型。
post资源定义在router.js:
export default Router.map(function() {
this.resource('posts', function() {
this.route('index', {path: '/'});
this.route('new');
this.route('full', {path: '/:id'});
});
模型钩子定义在routes/posts/index.js:
export default Ember.Route.extend({
model: function() {
return this.store.find('post');
},
});
我的模型为一个单一的post (models/post.js)
export default DS.Model.extend({
title: DS.attr('string'),
category: DS.attr('string'),
created_at: DS.attr('date'),
)}
我的模板使用{{#each}}帮助器显示帖子列表
(模板/文章/index.hbs ):
每个helper的内部内容都包含在一个名为'blog-list'的组件中。
{{#each model as |post|}}
{{blog-list model=post}}
{{/each}}
帖子列表显示良好。
我已经添加了代码排序列表的标题属性(控制器/posts/index.js):
export default Ember.ArrayController.extend({
sortProperties: ['title'],
sortAscending: true,
});
我不知道为什么,但是标题列没有被排序。
你必须在你的模板中迭代controller
而不是model
:
{{#each controller as |post|}}
{{blog-list model=post}}
{{/each}}
顺便说一下, ArrayController
不支持使用