我试图从我的模型存储访问以下JSON。我没有问题访问根(名称和地址),但我无法访问任何财务(净值或收入)。我已经验证了下面的JSON是从服务器返回的。
我知道这必须非常简单,但我看到的每个例子都展示了如何访问1对多关系。我的模型是1比1。人->金融类股。现在我没有建立任何关联因为我不知道如何建立1对1的关系。我试过社团,试过归属,试过财务。NetWorth从我的itemTPL。没有。
谁能把灯指给我看一下?服务器返回的JSON
[{
"PersonName": "John Smith",
"Address": "123 main street",
"Financials":
[{
"NetWorth": "$500,000",
"Income":"$67,000"
}]
}]
我注册了我的模型。
Ext.regModel('Person', {
fields: [
{name: 'Name', type:'string'},
{name: 'Address', type: 'string'},
],
});
Ext.regModel('Financials',{
fields: [
{name: 'NetWorth', type:'string'},
{name: 'Income', type: 'string'},
],
});
并注册商店
var commStore = new Ext.data.Store({
model: 'Person',
proxy: {
type: 'ajax',
url : 'Business/GetData',
reader: {
type: 'json',
}
},
autoLoad:false,
});
并在列表中显示
var commList = new Ext.List({
fullscreen: false,
itemTpl : '<div>{PersonName}</div><div>{Business.NetWorth}</div>',
store: commStore,
height:500,
width:"100%",
});
任何帮助都将非常感激。
我自己也是初学者,但似乎以下可以帮助(未与您的代码测试)
只有一个模型:
Ext.regModel('Person', {
fields: [
{name: 'Name', type:'string'},
{name: 'Address', type: 'string'},
{name: 'NetWorth', type:'string', mapping 'Financials.NetWorth'},
{name: 'Income', type: 'string', mapping 'Financials.Income'},
],
});
和模板代码中的
itemTpl : '<div>{PersonName}</div><div>{Business.NetWorth}</div>',
是
itemTpl : '<div>{PersonName}</div><div>{NetWorth}</div>',
您说您的关系是1对1,但是您的JSON数据返回一个数组(有一个项目,但仍然是一个数组,因为您使用了"[]"括号)。这意味着Person应该变成这样:
Ext.regModel('Person', {
fields: [
{name: 'Name', type:'string'},
{name: 'Address', type: 'string'},
],
hasMany: [
{name: 'person', model: 'Person'}
]
});