我设置了以下模型(简化):
Ext.define('UserGroup', {
extend: 'Ext.data.Model',
fields: ['GroupID', 'UserID'],
idProperty: '',
associations: [{
type: 'belongsTo',
model: 'User',
primaryKey: 'UserID',
foreignKey: 'UserID',
name: 'users'
}]
)};
Ext.define('User', {
extend: 'Ext.data.Model',
idProperty: 'UserID',
associations: [{
type: 'hasMany',
model: 'UserGroup',
primaryKey: 'UserID',
foreignKey: 'UserID',
name: 'userGroups'
}]
});
我已经为每个模型加载了现有的商店,并提供了大量相关数据。
当我尝试从UserGroup
访问User
关联时,我没有收到任何数据。
Ext.getStore('User').getAt(12).userGroups().count(); // returns 0
我知道这是因为关联正在创建自己的商店。到目前为止,我只能通过
获得相应的相关数据Ext.getStore('User').getAt(12).userGroups().load();
调用服务器获取该信息,但后来我必须使用回调并等待响应。
那么,如何指定userGroups
关联使用的商店,以便它不会从服务器请求数据?
答案 0 :(得分:3)
Afaik,有两种可能的解决方案:
Ext.data.HasManyAssociation.createStore
。将数据从原始商店传递到Ext.data.HasManyAssociation.storeConfig
:
Ext.define('User', {
extend: 'Ext.data.Model',
idProperty: 'UserID',
associations: [{
type: 'hasMany',
storeConfig: {
data: originalStore.getRange()
},
// ...
}]
});