反转内容数组

com*_*ted 4 ember.js

我正在我的ArrayController中存储搜索项列表.我希望搜索词最新显示到最旧.默认情况下,Ember按顺序输出它们.

您可以在此处查看我当前的实现:http://andymatthews.net/code/emberTweets/

这是相关的代码.

{{#each App.recentUsersArray.reverse}}
    <li>
        <a href="#" title="view again" {{action "searchAgain" target="App.recentUsersArray"}}>{{this}}</a>
    </li>
{{/each}}

App.recentUsersArray = Em.ArrayController.create({
    content: [],
    reverse: function(){
        return this.content.reverse();
    }.property(),
});
Run Code Online (Sandbox Code Playgroud)

您可以看到我正在尝试使用property()方法来反转它,但它无法正常工作.难道我做错了什么?

pan*_*atz 7

您应该始终使用get和set访问属性.此外,如果计算属性依赖于其他属性,则必须在property声明中添加这些属性.cacheable在下一个版本的ember 中可以省略使用,请参阅讨论.你可以在这里看到一个有效的例子.

reverse: function(){
    return this.get('content').toArray().reverse();
}.property('content.@each').cacheable()
Run Code Online (Sandbox Code Playgroud)

您也可以unshiftObject在数组上使用该方法,从而规避创建计算属性,请参阅http://jsfiddle.net/ez7bV/.