如何在Ember.js中对对象进行排序?

时间:2015-02-11 02:39:45

标签: javascript ember.js

我尝试过this post但收效甚微。

我有一个示例Ember.js应用程序,我正在尝试对#34;博客帖子进行排序"首先列出最新帖子的位置。我哪里错了?

的index.html

<script type="text/x-handlebars" data-template-name="posts">

    ...

    <!-- relevant section -->
    <section id="posts" class="col-md-12">
        {{#each post in model}}
            <div class="post row">
                <h3 class="title">{{post.title}}</h3>
                <div class="body">{{post.body}}</div>
            </div>
        {{/each}}
    </section>
</script>

router.js

Blog.Router.map(function() {
    this.resource('posts', {path: '/'});
});

Blog.PostsRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('post');
    }
});

posts_controller.js

Blog.PostsController = Ember.ArrayController.extend({
    itemController: 'post',
    sortProperties: ['id'],
    sortAscending: false,
    actions: {
        createPost: function() {
            var title = this.get('newTitle');
            var body = this.get('newBody');
            if(!title.trim() || !body.trim()) { return; }

            var post = this.store.createRecord('post', {
                title: title,
                body: body
            });

            this.set('newTitle', '');
            this.set('newBody', '');

            post.save();
        }
    }
});

post.js

Blog.Post = DS.Model.extend({
    title: DS.attr('string'),
    body: DS.attr('string')
});
Blog.Post.FIXTURES = [
    {
        id: 1,
        title: 'Hell Is Other Robots',
        body: 'You know the worst thing about being a slave? They make you work, but they don\'t pay you or let you go. Kif, I have mated with a woman. Inform the men. Now, now. Perfectly symmetrical violence never solved anything.'
    },
    {
        id: 2,
        title: 'The Luck of the Fryrish',
        body: 'Tell them I hate them. There\'s no part of that sentence I didn\'t like! Fetal stemcells, aren\'t those controversial? Daylight and everything. That\'s not soon enough! You\'re going to do his laundry? Oh right. I forgot about the battle. Hey, whatcha watching?'
    },
    {
        id: 3,
        title: 'The Duh-Vinci Code',
        body: 'I\'ve been there. My folks were always on me to groom myself and wear underpants. What am I, the pope? Actually, that\'s still true. You seem malnourished. Are you suffering from intestinal parasites? And remember, don\'t do anything that affects anything, unless it turns out you were supposed to, in which case, for the love of God, don\'t not do it! Oh, I always feared he might run off like this. Why, why, why didn\'t I break his legs?'
    }
];

1 个答案:

答案 0 :(得分:2)

您只需直接绑定到arrangedContent属性而不是模型。

{{#each post in arrangedContent}}
    <div class="post row">
        <h3 class="title">{{post.title}}</h3>
        <div class="body">{{post.body}}</div>
    </div>
{{/each}}

请参阅arrangedContent here的文档。 Dom Cristie撰写了nice overview here