Ext.js从json构建模型关系的问题

Ext.js problems building model relations from json

本文关键字:关系 问题 模型 构建 js json Ext      更新时间:2023-09-26

在我的项目中,我需要创建一个问卷(一个表单)。问题是根据类别动态生成的,并且在服务器上的数据库中。为了获得问题,使用了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
                 }
              ]
           }
        }
     ]
  }

]}

我有商店和问题模型。我想我还需要一个值存储,使其在下拉列表中可见,还需要另一个依赖项存储。

我只是想知道,是否有可能在没有任何明确编码的情况下,使用像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