Javascript Ext.js从json构建模型关系时遇到的问题
在我的项目中,我需要创建一个调查问卷(表格)。这些问题根据类别动态生成,并且在服务器上、数据库中。 为了获取问题,使用了RESTAPI,因此向/getquestions/1发送请求将返回一个JSON,其中包含表单生成所需的所有数据 JSON如下所示:Javascript Ext.js从json构建模型关系时遇到的问题,javascript,json,extjs,model,extjs4,Javascript,Json,Extjs,Model,Extjs4,在我的项目中,我需要创建一个调查问卷(表格)。这些问题根据类别动态生成,并且在服务器上、数据库中。 为了获取问题,使用了RESTAPI,因此向/getquestions/1发送请求将返回一个JSON,其中包含表单生成所需的所有数据 JSON如下所示: { "questions":[ { "id":4, "text":"Question1", "type":"NUMBER", "
{
"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
}
]
}
}
]
}
{
“问题”:[
{
“id”:4,
“文本”:“问题1”,
“类型”:“编号”,
“强制性”:正确,
“可见”:真实
},
{
“id”:5,
“文本”:“下拉式问题”,
“类型”:“下拉列表”,
“强制性”:正确,
“可见”:真实,
“价值”:[
{
“id”:1,
“文本”:“答复1”,
“选定”:false
},
{
“id”:2,
“文本”:“回答2”,
“选定”:false
}
]
},
{
“id”:7,
“案文”:“问题3作为电台”,
“类型”:“收音机”,
“强制性”:错误,
“可见”:假,
“价值”:[
{
“id”:1,
“文本”:“是”,
“选定”:false
},
{
“id”:2,
“文本”:“否”,
“选定”:false
}
],
“依赖项”:{
“标记_可见”:[
{
“问题编号”:5,
“操作”:“=”,
“价值”:2
}
],
“mark_必填项”:[
{
“问题编号”:5,
“操作”:“=”,
“价值”:2
},
{
“问题编号”:4,
“操作”:“要从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