我正在尝试像以下示例一样在ExtJS 4中实现延迟加载:http://dev.sencha.com/deploy/ext-4.0.0/examples/data/associations.html使用以下代码:

/* Models */
Ext.define('Post', {
    extend: 'Ext.data.Model',
    fields: ['title'],
    proxy: {
        type: 'ajax',
        url: 'http://example.com/post.json'
    }
});

Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['name'],
    hasMany: 'Post',
    proxy: {
    type: 'ajax',
        url : 'http://example.com/user.json'
    }
});

/* Load User and Posts */
User.load(1, {
    success: function(user) {
        var test = user.posts();
        test.on('load', function(me) {
            console.log(me.getCount()); /* THIS is always 0?! */
        });
        test.load();
    }
});

/* Returned JSON Data */

/* User */
[{"name":"blalala"}]

/* Posts */
[{"title":"dfgdfgdgd"}]


但是返回的Posts-Store始终为空(0条记录)。您可以在此处检查我的JSFiddle:http://jsfiddle.net/lenoxDoe/n6Xbw/2/

任何意见将是有益的。

最佳答案

1. hasMany属性是一个数组


您需要在hasMany关系上设置foreignKey,并在Post上提供外键字段

关于javascript - 延迟加载在ExtJS中具有hasMany关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16063844/

10-11 12:03