作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个返回以下 JSON 的脚本
{
"success":true,
"code":0,
"message":"works",
"data":[
{
"name":"connection1",
"status":1,
"info":[
{
"info1":"abc",
"info2":"def",
"info3":"123"
},
{
"info1":"ghi",
"info2":"jkl",
"info3":"456"
}
]
},
{
"name":"connection2",
"status":1,
"info":[
{
"info1":"mno",
"info2":"pqr",
"info3":"789"
}
]
},
{
"name":"connection3",
"status":1,
"info":[
{
"info1":"stu",
"info2":"vwx",
"info3":"123"
}
]
},
{
"name":"connection4",
"status":0,
"info":[
]
},
{
"name":"connection5",
"status":0,
"info":[
]
}
]
}
现在我想将name
、status
和info's
加载到网格中。所以我首先定义了我的数据模型:
Ext.define("Data", {
extend: 'Ext.data.Model',
fields: ['name', 'status']
});
然后是我的信息模型:
Ext.define("Info", {
extend: 'Ext.data.Model',
fields: [
'info1',
'info2',
'info3'
],
belongsTo: 'Data'
});
并设置我的商店:
var store = Ext.create('Ext.data.Store', {
model: "Data",
autoLoad: true,
proxy: {
type: 'ajax',
url: 'valid/URL.php'
},
reader: {
type: 'json',
root: 'data'
}
});
但是我的 console.debug(store)
记录了 data: items: Array[0]
。我尝试添加
hasMany: { model: 'Info', name: 'info' }
到我的数据模型,然后我的 console.debug(store)
记录 model: undefined
。
有谁知道我的错误在哪里?感谢您的帮助。
最佳答案
这是一个fiddle演示工作代码
获取对应的 hasMany 存储的方法是 info()
:store.data.items[0].info()
此外,在您的示例中,阅读器放置不当。它应该在代理定义内。我不确定这是否只是复制/粘贴代码时的错误。这是对应的模型和商店:
信息模型:
Ext.define("Info", {
extend: 'Ext.data.Model',
fields: ['info1', 'info2', 'info3'],
belongsTo:'Data'
});
数据模型:
Ext.define("Data", {
extend: 'Ext.data.Model',
fields: ['name', 'status'],
hasMany:{model:'Info',name:'info'}
});
商店:
var store = Ext.create('Ext.data.Store', {
model: "Data",
autoLoad: true,
proxy: {
type: 'ajax',
url: 'data1.json',
reader: {
type: 'json',
root: 'data'
}
}
});
以及加载后演示的日志:
store.on('load', function() {
console.log(store.data.items[0].info());
})
关于javascript - ExtJS 4.2.0 在网格中加载嵌套的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22248476/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!