我知道这已经讨论了很多次,但我无法让我的代码工作...... 所以我有一个PHP脚本,它返回以下JSON。
我希望将数据加载到这样的网格中:
名称|状态| ztn | dtn | IDN
{
"success":true,
"code":0,
"message":"works",
"data":[
{
"name":"connection1",
"status":1,
"locks":[
{
"ztn":"abc",
"dtn":"def",
"idn":"123"
},
{
"ztn":"ghi",
"dtn":"jkl",
"idn":"456"
}
]
},
{
"name":"connection2",
"status":1,
"locks":[
{
"ztn":"mno",
"dtn":"pqr",
"idn":"789"
}
]
}
我的商店设置如下:
Ext.define('VPN.store.Connections', {
extend: 'Ext.data.Store',
id: 'connectionStore',
requires: [
'VPN.model.Connection',
'VPN.model.ConnectionLocks'
],
model: "VPN.model.Connection",
autoLoad: true,
proxy: {
type: 'ajax',
url: 'api/router.php',
reader: {
type: 'json',
root: 'data'
}
}
});
我的第一个模型如下:
Ext.define("VPN.model.Connection", {
extend: 'Ext.data.Model',
id: 'connectionModel',
fields: ['name', 'status'],
hasMany: {
model: 'VPN.model.ConnectionLocks',
name: 'locks'
}
});
和我的第二个模特:
Ext.define("VPN.model.ConnectionLocks", {
extend: 'Ext.data.Model',
id: 'connectionLocksModel',
fields: ['ztn', 'dtn', 'idn'],
belongsTo: 'VPN.model.Connections'
});
网格的商店是VPN.model.Connections
。 name
和status
已正确显示,但锁定的ztn
,dtn
和idn
未显示...
那么我的错误在哪里?
答案 0 :(得分:0)
我终于找到了解决方法。它是我发现和改变的片段的一部分。
我使用以下代码替换了dataIndex
- 定义中的store
renderer: function(value, metaData, record, rowIdx, colIdx, store, view) {
values = [];
record.locks().each(function(lock) {
values.push(lock.get('idn'));
});
return values.join(', ');
}