Yaz*_*ati 1 javascript extjs extjs4
我在这样的extjs中有一个模型:
Ext.define('Game', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'int' },
{ name: 'Name', type: 'string' },
//{ name: 'levels' , type:'array'},
]
});
Run Code Online (Sandbox Code Playgroud)
我想将此模型用于网格存储,但它的第三个属性
// {name:'levels',type:'array'}
是一个数据数组,我想在动态创建的网格列中显示它们.我想也许关于extjs模型的关联可能会给我一个解决方案,但我很困惑如何使用它们.任何解决方案都会受到关注.
只需使用类型:'auto'设置,您的数组将不受影响.
Ext.define('Game', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'int' },
{ name: 'Name', type: 'string' },
{ name: 'levels' , type:'auto'},
]
});
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用渲染器定义列,如下所示:
columns: [
{
text: "ID",
dataIndex: "id"
},
{
text: "Name",
dataIndex: "Name"
},
{
text: "Array Item 1",
dataIndex: "levels",
renderer: function(value){
return levels[0];
}
},
{
text: "Array Item 2",
dataIndex: "levels",
renderer: function(value){
return levels[1];
}
}
]
Run Code Online (Sandbox Code Playgroud)
如果你想按数组中的项动态添加列,你实际上必须弄清楚哪个记录包含其中包含最多项的数组,然后根据需要向列数组添加任意数量的列,然后设置网格的列使用.configure方法.这可能是在商店的加载事件上完成的.