Javascript 如何使ExtJS4模型关联使用现有存储而不是创建自己的存储?

Javascript 如何使ExtJS4模型关联使用现有存储而不是创建自己的存储?,javascript,extjs,model,extjs4,Javascript,Extjs,Model,Extjs4,我已设置了以下模型(简化): Ext.define('UserGroup'{ 扩展:“Ext.data.Model”, 字段:['GroupID','UserID'], idProperty:“”, 协会:[{ 键入:“belongsTo”, 模型:“用户”, primaryKey:“用户ID”, foreignKey:'UserID', 名称:'用户' }] )}; Ext.define('用户'{ 扩展:“Ext.data.Model”, idProperty:“用户ID”, 协会:[{ 类

我已设置了以下模型(简化):

Ext.define('UserGroup'{
扩展:“Ext.data.Model”,
字段:['GroupID','UserID'],
idProperty:“”,
协会:[{
键入:“belongsTo”,
模型:“用户”,
primaryKey:“用户ID”,
foreignKey:'UserID',
名称:'用户'
}]
)};
Ext.define('用户'{
扩展:“Ext.data.Model”,
idProperty:“用户ID”,
协会:[{
类型:“hasMany”,
模型:“用户组”,
primaryKey:“用户ID”,
foreignKey:'UserID',
名称:“用户组”
}]
});
我已经为这些模型中的每一个加载了现有的存储,并提供了大量相关数据。 当我试图从
用户
访问
用户组
关联时,我没有得到任何数据

Ext.getStore('User').getAt(12.userGroups().count();//返回0
我知道这是因为Association正在创建自己的商店。到目前为止,我只能通过

Ext.getStore('User').getAt(12.userGroups().load();
这会调用服务器来获取信息,但是我必须使用回调并等待响应


那么,我如何为
用户组
关联指定一个要使用的存储区,使其不向服务器请求数据呢?

好的,有两种可能的解决方案:

  • 重写
    Ext.data.HasManyAssociation.createStore
  • 将数据从原始存储区传递到:


  • 太棒了,看起来棒极了。我希望这周能试一试。谢谢
    Ext.define('User', {
        extend: 'Ext.data.Model',
        idProperty: 'UserID',
        associations: [{
            type: 'hasMany',
            storeConfig: {
              data: originalStore.getRange()
            },
            // ...
        }]
    });