我设置了两个这样的模型:
App.Conversation = DS.Model.extend({
header : DS.attr('string'),
created_at : DS.attr('date'),
entry : DS.hasMany('Entry')
});
App.Entry = DS.Model.extend({
body : DS.attr('string'),
conversation: DS.belongsTo('Conversation'),
created_at : DS.attr('date'),
});
这样的路线:
App.ConversationsRoute = Em.Route.extend({
model: function() {
return this.store.find('conversation');
}
});
App.ConversationRoute = Em.Route.extend({
model: function(params) {
return this.store.find('conversation', params.id);
}
})
和这样的对话控制器:
App.ConversationController = Em.ObjectController.extend({
actions: {
loadMore: function() {
}
},
entries: function() {
return this.get('entry');
}.property('model.entry')
});
现在,我想做的只是为每个对话提供10个条目。这没有任何问题,我能够将所有与hasMany关系的对话检索到Entry。
但是,如果用户点击我的应用中的按钮,我希望稍后通过 loadMore 操作中的某些功能延迟更多相关条目。
如何实现这一目标?我真的无法解决如何加载更多条目并将它们同步到Conversation模型的问题。
感谢您的帮助。
答案 0 :(得分:1)
通过查询查找手动获取10条记录,然后使用pushObjects将它们推送到条目集合中。
var entryCol = this.get('entry');
store.find('entry', {skip:10}).then(function (col){
entryCol.pushObjects(col);
});
像这样的东西(对不起电话)