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()
},
// ...
}]
});