在我的项目中,我需要创建一份问卷(一种表格)。问题是根据类别动态生成的,并且在数据库中的服务器上。 要获取问题,需要使用 REST API,因此向/getquestions/1 发送请求会返回一个 JSON,其中包含表单生成所需的所有数据。
JSON 看起来像这样:
{
"questions":[
{
"id":4,
"text":"Question1",
"type":"NUMBER",
"mandatory":true,
"visible":true
},
{
"id":5,
"text":"Dropdown type question",
"type":"DROPDOWN",
"mandatory":true,
"visible":true,
"values":[
{
"id":1,
"text":"Answer1",
"selected":false
},
{
"id":2,
"text":"Answer2",
"selected":false
}
]
},
{
"id":7,
"text":"Question 3 as Radio",
"type":"RADIO",
"mandatory":false,
"visible":false,
"values":[
{
"id":1,
"text":"Yes",
"selected":false
},
{
"id":2,
"text":"No",
"selected":false
}
],
"dependencies":{
"mark_visible":[
{
"question_id":5,
"operation":"=",
"value":2
}
],
"mark_mandatory":[
{
"question_id":5,
"operation":"=",
"value":2
},
{
"question_id":4,
"operation":"<=",
"value":5000
}
]
}
}
]
}
]
我有问题的商店和模型。 我想我还需要一个值存储,以使其在下拉列表中可见,另一个存储依赖项。
我只是想知道,是否有可能在没有任何显式编码的情况下使用 ext 和模型关系(如 hasMany 等)以某种方式填充所有存储。
我基本上是在 Ext.js 中寻找最佳实践和最快的解决方案,以从这个 JSON 中创建模型和关系
任何想法都会非常有帮助。
最佳答案
要从 JSON 数据填充模型及其关联,您需要让它通过读取器类(例如 Ext.data.JsonReader
),在该类中它将向下移动创建关联的“树” .
如果您通过代理加载,这应该会自动发生(因为它默认使用阅读器)。如果您的 JSON 来自 AJAX 调用,并且您正在使用 Ext.create
调用创建模型实例,那么您需要自己进行读取。像这样的东西:
var data = [...];
var reader = Ext.create('Ext.data.JsonReader', {
model: 'MyModel'
});
var resultset = reader.readRecords(data);
console.log(resultset.getRecords()[0]); // logs first read record
关于javascript - Ext.js 问题从 json 构建模型关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29535387/