在阿里云宜搭(Yida)中,自定义表单通常用于实现更复杂的业务逻辑。如果你需要在自定义表单中获取普通表单子表单中的数据,可以通过以下步骤实现:
1. 了解宜搭的数据结构
普通表单和子表单的数据存储在宜搭的数据库中,通常以 JSON 格式存储。
子表单的数据是嵌套在主表单数据中的,可以通过宜搭提供的 API 或脚本获取。
2. 获取表单数据的方法
宜搭提供了多种方式获取表单数据,以下是常用的方法:
方法 1:使用宜搭的 API
宜搭提供了 RESTful API 来获取表单数据。你可以通过 API 获取普通表单及其子表单的数据。
获取 Access Token:
调用宜搭的认证接口获取 Access Token。
参考文档:宜搭 API 认证
调用表单数据接口:
使用宜搭的表单数据接口获取表单数据。
接口示例:
GET /v1/form/data/{formInstanceId}
参考文档:宜搭表单数据 API
解析子表单数据:
表单数据以 JSON 格式返回,子表单数据通常嵌套在主表单数据中。
示例 JSON 数据结构:
{ "formData": { "mainField": "value", "subTable": [ { "subField1": "value1", "subField2": "value2" }, { "subField1": "value3", "subField2": "value4" } ] } }
方法 2:使用宜搭的脚本
宜搭支持通过脚本获取表单数据,适用于自定义表单的场景。
编写脚本:
在宜搭的自定义表单中编写 JavaScript 脚本,调用宜搭的 API 获取表单数据。
示例脚本:
// 获取表单实例 ID const formInstanceId = 'your-form-instance-id'; // 调用宜搭 API 获取表单数据 const response = await fetch(`/v1/form/data/${formInstanceId}`, { method: 'GET', headers: { 'Authorization': 'Bearer your-access-token' } }); const data = await response.json(); // 解析子表单数据 const subTableData = data.formData.subTable; console.log(subTableData);
在自定义表单中使用数据:
将获取到的子表单数据绑定到自定义表单的控件中。
3. 注意事项
权限控制:确保调用 API 的用户有权限访问目标表单数据。
数据格式:子表单数据通常是数组形式,需要根据实际需求解析。
性能优化:如果需要频繁获取表单数据,建议使用缓存机制(如 Redis)减少 API 调用次数。
4. 示例场景
假设你有一个普通表单,包含一个子表单,子表单中有两个字段:itemName
和 itemQuantity
。你需要在自定义表单中获取这些数据并显示。
获取表单数据:
使用 API 或脚本获取表单数据。
示例 JSON 数据:
{ "formData": { "mainField": "value", "subTable": [ { "itemName": "Product A", "itemQuantity": 10 }, { "itemName": "Product B", "itemQuantity": 5 } ] } }
在自定义表单中显示数据:
将
subTable
数据绑定到自定义表单的表格控件中。
通过以上方法,你可以在宜搭自定义表单中获取普通表单子表单中的数据,并根据业务需求进行处理和展示。