Emberjs-懒惰负载有许多关系



我有两个这样设置的模型:

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);
});

类似这样的东西(抱歉的电话)

最新更新