当前位置: 首页 > news >正文

数据过滤网站模板下载最新体育新闻足球

数据过滤网站模板下载,最新体育新闻足球,拼多多网站建设合同,网站ppt怎么做关于数据模型#xff1a;模型就是一种规范约束#xff0c;便于维护管理#xff0c;在不确定表单内会出现什么数据时#xff0c;就没有模型一说。 这时就要用到动态表单#xff08;根据接口返回的字段#xff0c;生成动态表单#xff09; 1、观察数据格式#xff0c;定义…关于数据模型模型就是一种规范约束便于维护管理在不确定表单内会出现什么数据时就没有模型一说。 这时就要用到动态表单根据接口返回的字段生成动态表单 1、观察数据格式定义模型 modelData:[{id:1,name:模型一,ctaVal:{first_usdt: {val: 10, title: 首仓金额, unit: usdt, read: 0 },}},{id:2,name:模型二,ctaVal:{min_profit: {val: 2, title: 最小收益率, unit: %, read: 1}}} ]上边自定义的数据格式已知id和name为固定格式 ctaVal内的数据不确定具体会返回什么信息 接口从别的地方抓取的数据不确定具体字段 需要动态展示的数据定义final MapString, dynamic ctaVal;class DynamicFormModel {int? id;String? name;final MapString, dynamic ctaVal;DynamicFormModel ({required this.id,required this.name,required this.ctaVal,});factory DynamicFormModel .fromJson(MapString, dynamic json) {return StrategyListModel(id: json[id] as int?,name: json[name] as String?,ctaVal: json[ctaVal] ?? {},);}MapString, dynamic toJson() {id: id,name: name,ctaVal: ctaVal,}; } 2、接口处理请求数据 // 模型列表 ListDynamicFormModel modelList []; // 当前选中的模型id int modelId 0; // 当前选中的模型 DynamicFormModel? selectedModel; // 动态表单控制器 final MapString, TextEditingController fieldControllers {};overridevoid onReady() {super.onReady();// 获取模型列表、默认模型为第一条数据modelList modelData.map((e) DynamicFormModel .fromJson(e)).toList();if (modelList.isNotEmpty) {selectedModel modelList.first;modelController.text selectedModel?.name ?? ;modelId selectedModel?.id ?? 0;}update([strategy_add]); }override void onClose() {super.onClose();// 释放所有控制器fieldControllers.forEach((key, controller) {controller.dispose();}); }void submit() async{// 获取每个字段的值for (var entry in fieldControllers.entries) {if (entry.value.text.isEmpty) {Loading.toast(请输入完整内容);return;}}// 收集动态表单内的数据key键名first_usdtMapString, String data {};fieldControllers.forEach((key, controller) {data[key] controller.text;print($key${controller.text});});// 如果需要自定义字段 data[remark] remarkController.text;// 转换为 JSONString jsonData jsonEncode(data);print(jsonData $jsonData); } 3、动态渲染表单页面 // 表单 Widget _buildForm() {return GetBuilderStrategyAddController(id: strategy_model,builder: (_) {return Widget[controller.selectedModel null? const Center(child: Text(请选择一个模型)): Widget[...controller.selectedModel!.ctaVal.entries.map((item) {// 获取或创建控制器final controllerKey item.key;if (!controller.fieldControllers.containsKey(controllerKey)) {controller.fieldControllers[controllerKey] TextEditingController(text: item.value[val]);}final fieldController controller.fieldControllers[controllerKey];return Widget[InputWidget(prefix: TextWidget.body(item.value[title],),placeholder: item.value[read] 1? : 请输入${item.value[title]},controller:fieldController,readOnly: item.value[read] 1 ? true : false,).expanded(),TextWidget.body(item.value[unit],),].toRow(crossAxisAlignment: CrossAxisAlignment.center).opacity(item.value[read] 1 ? 0.5 : 1);}),].toColumn(crossAxisAlignment: CrossAxisAlignment.start)].toColumn();},); } ...controller.selectedModel!.ctaVal.entries.map((item) ...) 会遍历 ctaVal 中的每个条目并将其映射为一个新的 Widget 列表。 每个 item 是一个 MapEntry可以通过 item.key 和 item.value 访问键和值。 这种方式非常适合动态生成 UI 组件特别是在字段数量和内容不确定的情况下。
http://www.hkea.cn/news/14343219/

相关文章:

  • 在线做qq空间的网站网站群建设
  • 做网站如何找项目政务门户网站建设思想
  • 南宁cms建站网站开发的技术简介
  • 电子商务是建网站遵义网站建设90kj
  • 网站 谁建设 谁负责商会 网站模板
  • 网页视频提取软件seo外包多少钱
  • 网站前台设计模板大学生网页设计作业成品
  • 湛江网站建设方案服务进入百度网首页
  • 潍坊做电商的网站北京市违法建设投诉网站
  • 怎么连接网站的虚拟主机广东东莞建设网
  • 什么网站备案容易审核创意智能产品设计
  • 西安网站建设风尚视频投票网站怎么做
  • 专业的图纸设计网站蔚县网站建设
  • 设计网站包含的功能模块网站开发难吗2008
  • 域名网站账号垂直门户网站都有什么
  • 建设厅网站上怎么实名认证成都网站推广哪家专业
  • 网站注册怎么做青岛网络seo公司
  • wordpress 外贸网站建设网站开发语言排行榜
  • 美容网站制作合肥百度推广优化排名
  • 学字体网站企业网站优化是什么
  • 网站建设找酷风wordpress divi 数据
  • wordpress 出错求职seo推荐
  • 具有价值的响应式网站网站建设以什么盈利
  • 威海房地产网站建设宜阳县住房和城乡建设局网站
  • 奉贤网站建设专家wordpress文档主题
  • 京东网站建设网页设计欣赏案例
  • 抚州教育网站建设重庆装修公司一览表
  • aspx网站架设全省建设信息网站
  • 做高级电工题的网站直播软件开发商
  • 找人做网站维护多少钱.net做网站的方式