我有一个拥有多条消息的游戏模型。为了让它们实时同步,我使用了这样的计算属性:
gameMessages: function () {
var gameId, messages;
gameId = this.get('id');
return this.get('store').filter('message', function (message) {
return (message.get('game.id') === gameId);
});
}.property('messages'),
如何限制其返回的邮件数量?我只想展示最新的10个。
答案 0 :(得分:3)
有十几种方法可以实现这一点,一种不会破坏过滤器的简单方法
gameMessages: function () {
var gameId, messages, count = 0;
gameId = this.get('id');
return this.get('store').filter('message', function (message) {
return (message.get('game.id') === gameId) && count++ < 10;
});
}.property('id'),
您还可以创建一个返回10
的计算属性gameMessages: function () {
var gameId, messages;
gameId = this.get('id');
return this.get('store').filter('message', function (message) {
return (message.get('game.id') === gameId);
});
}.property('id'),
top10GameMessages: function(){
return this.get('gameMessages').toArray().slice(0,1)
}.property('gameMessages.[]')
此外,我不确定为什么您的计算属性依赖于messages
我没有看到CP中使用的任何属性名称messages
。