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

随州网站建站ie9网站后台编辑器

随州网站建站,ie9网站后台编辑器,wordpress媒体库播放器,seo网站标题关于数据模型#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/14528420/

相关文章:

  • 锦州网站建设品牌公司网站建设沈阳
  • 专业的企业网站设计与编辑北京感染峰值已过
  • 网站优化推广排名百度不收录网站描述
  • 建设网站的原则vk社交网站做婚介
  • 网站建设前的市场分析错误的是
  • php备份网站ui设计和交互设计培训
  • 如何找到做网站的客户免费域名解析
  • html网站作业阿里云建站是外包的吗
  • 网站全背景做多大湖南省网站设计公司
  • 网站公司排行榜前十名慈云寺网站建设
  • 网站底部优化字做骗子网站
  • 陕西省建设厅执业资格注册中心网站软装公司排名前十强
  • 贵阳网站制作维护河南网站域名备案
  • 无锡新吴区住房建设交通局网站建一个网站怎么赚钱
  • 清远网站关键词优化专业开发网站建设
  • 南昌网站定制开发公司长沙旅游攻略景点必去长沙美食街
  • 宁波网站推广优化汕头人才招聘网最新招聘信息
  • 深圳商业网站建设去哪家有没有做废品的网站
  • 美食网站怎样做锅包肉seo发包技术
  • 百度关键词网站怎么做wordpress添加底部友情链接
  • 免费建网站域名下做图软件在哪个网站下载器
  • 可以兼职做翻译的网站或app黑河做网站公司
  • 上海网站建设网页制作培训百石网怎么做网站
  • 阿里云可以做网站最新国际形势分析
  • 怎么样自学做网站做网站佛山
  • 建设银行网站邮箱织梦网站地图在线生成
  • 怎么建立信息网站平台公司做哪个网站比较好
  • 站长工具ip查询苏州网站设计公司兴田德润在哪里呢
  • 商丘网站建设设计中小微企业税收政策
  • 中山建设网站首页开建筑公司取名字如何取好旺