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

标签 javascript json extjs model extjs4

在我的项目中,我需要创建一份问卷(一种表格)。问题是根据类别动态生成的,并且在数据库中的服务器上。 要获取问题,需要使用 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/

相关文章:

ruby-on-rails - 如何将值合并到 Rails 查询 as_json

c# - Asp.net MVC 使用 JQuery 填充列表框?

javascript - 分机号 : tpl config is ignoring html in Panel

javascript - 如何在单个 View /页面中呈现两个电子签名组件?

javascript - 将鼠标事件分派(dispatch)到视觉上为 "behind"的接收元素

javascript - 在 react 中递归渲染元素内的元素

java - 尝试检索对象字符串时出现 JSON 异常

javascript - 如何在谷歌脚本中获取非空白单元格的范围

javascript - 用javascript弹出

linux - xdg-打开 : no method available for opening 'http://localhost:8080'