我们有一个客户需要相当复杂的数据模型。这意味着数据模型不仅非常庞大(大约 500-1000 个字段,嵌套在许多对象中),还需要在任何时候发送和接收所有数据,这就是字段发生变化(在失去焦点之后)。我们将其全部作为 JSON 获取。这是一个结构示例:
{
data: {
somefield: 'some content'
},
label: {
somelabel: 'some label text'
},
applyable: {
somefield: {
visible: false
}
}
someSubForm: {
data: {
somefield: 'some content'
},
label: {
somelabel: 'some label text'
},
anotherSubForm: {
data: {
somefield: 'some content'
},
label: {
somelabel: 'some label text'
}
}
}
}
但这还不是全部;该模型还包含标签、工具提示和其他配置。所有数据都需要显示在多个选项卡中,其中可能会在两个不同的选项卡中显示相同的数据。由于所需的布局(由客户定义),表单将相互嵌套。
后端由我们的客户提供,因此我无法在此处更改任何内容。
我首先使用具有已定义代理的单个模型来加载 JSON。但在那之后我遇到了几个问题。
首先是表单将始终跟踪所有字段,即使是嵌套表单也是如此。其次是我无法更改任何标签或应用自定义设置第三是由于数据量巨大,loadRecord() 和 getValues() 方法运行良好长。
我的问题是如何将其分解,以便每个表单仅处理其自己的数据而不是所有数据,以及如何应用自定义设置?