我有两个这样设置的模型:
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个条目,这些条目与每个对话并排加载。这没有问题,我能够检索到他们与Entry的hasMany关系的所有对话。
但是,如果用户单击我的应用程序中的按钮,我希望稍后通过我的loadMore操作中的一些功能来懒惰地加载更多相关条目。
如何做到这一点?我真的无法理解如何加载更多条目并将它们同步到Conversation模型。
谢谢你的帮助。
通过find-by-query手动获取10条记录,然后使用pushObjects将它们推送到条目集合中。
var entryCol = this.get('entry');
store.find('entry', {skip:10}).then(function (col){
entryCol.pushObjects(col);
});
类似这样的东西(抱歉的电话)