在我的应用程序中,商店中sencha给出的“ id”并不总是与数据库上的id对应,但是关系由数据库驱动,因此由“ server_ids”驱动。
考虑一个简单的“组织->事件”关系,其中一个组织可以有许多事件。组织模型为:
Ext.define('TestApp.model.Organization', {
extend: 'TestApp.model.Base',
identifier: 'sequential',
fields: [{
name: 'id',
type: 'int',
},
'server_id',
'name',
]
});
server_id
是关系的重要键。我将事件定义为:
Ext.define('TestApp.model.Event', {
extend: 'TestApp.model.Base',
identifier: 'sequential',
fields: [{
name: 'id'
}, {
name: 'server_id'
}, {
name: 'name'
}, {
name: 'organizationId',
reference: 'TestApp.model.Organization',
}],
});
(同样,server_id是关系的重要ID。)
现在,数据分两个阶段构建(首先在加载事件之后加载组织存储)。
组织请求将返回以下内容:
[{
"name":"org1"
"server_id":100
}, {
"name":"org2"
"server_id":102
}]
ID由sencha本身给出,将类似于“ 0”和“ 1”, 相应的事件加载将返回如下内容:
[{
"name":"event1_org1"
"server_id": 0
"organization": 100
}, {
"name": "event2_org1"
"server_id": 1
"organization": 100
}, {
"name": "event1_org2"
"server_id": 2
"organization": 102
}]
现在如何在加载商店时告诉extjs“理解”关联?当我查找reference时,并没有出现我期望的foreignkey
或via
指示。