我正在我的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()方法来反转它,但它无法正常工作.难道我做错了什么?
您应该始终使用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/.
| 归档时间: |
|
| 查看次数: |
4792 次 |
| 最近记录: |