所以我有一个父子商店,如下所示:
父模型
Ext.define('APP.model.Client', {
extend: 'Ext.data.Model',
requires: [
'APP.model.Website', 'Ext.data.association.HasMany', 'Ext.data.association.BelongsTo'],
fields: [{
name: 'id',
type: 'string'
}, {
name: 'name',
type: 'string'
}, {
name: 'slug',
type: 'string'
}, {
name: 'active',
type: 'boolean'
}, {
name: 'current',
type: 'boolean'
}],
hasMany: {
model: 'APP.model.Website',
name: 'websites'
}
});
儿童模型
Ext.define('APP.model.Website', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
type: 'string'
}, {
name: 'client_id',
type: 'string'
}, {
name: 'sub_domain',
type: 'string'
}, {
name: 'active',
type: 'boolean'
}],
belongsTo: 'APP.model.Client'
});
通过服务器使用 AJAX 调用,我正在加载Clients
商店,并且加载正常。但是Websites
商店没有填充,当我在Clients
商店 on.load 函数上断点时,为了查看它填充了什么,Client
商店只填充了客户端数据,但在该raw
商店的属性中,我可以看到所有websites
数据。所以它被正确返回,但我的 extjs 不正确。这里是商店:
客户商店
Ext.define('APP.store.Clients', {
extend: 'Ext.data.Store',
autoLoad: false,
model: 'APP.model.Client',
proxy: {
type: 'ajax',
url: '/client/list',
reader: {
type: 'json',
root: 'items'
}
},
sorters: [{
property: 'name',
direction: 'ASC'
}]
});
网站商店
Ext.define('APP.store.Websites', {
extend: 'Ext.data.Store',
requires: ['Ext.ux.Msg'],
autoLoad: false,
model: 'APP.model.Website',
proxy: {
type: 'ajax',
url: '/client/list',
reader: {
type: 'json',
root: 'items'
},
writer: {
type: 'json'
}
},
sorters: [{
property: 'sub_domain',
direction: 'ASC'
}]
});
我的最终结果是......我想填充两个商店,以便我可以单击一个元素,当它从父商店加载某些内容时,我可以访问子商店(当我弄清楚时会有更多这个问题)在选项卡中填充几个网格。
就我的设置而言,我缺少什么?几天前我刚刚下载了extjs4,所以我在4.1上。