jQuery MiniUI

标题: form.setData设置不了表单 [打印本页]

作者: 鸡胸肉终结者    时间: 2017-8-18 11:31:06     标题: form.setData设置不了表单

setData设置不了表单,success函数里面的请求数据也是成功请求到的,函数里最后一句也有执行,填了上去,就是setData不起作用,请问是什么原因[attach]9730[/attach][attach]9729[/attach]
  1.             if (data.action == "edit") {
  2.                 //跨页面传递的数据对象,克隆后才可以安全使用
  3.                 data2 = mini.clone(data);


  4.                 $.ajax({
  5.                     url: "http://localhost:39941/api/method/get_carpark_device_item/" + data2.id + "?token=" + $.cookie("token"),//查询
  6.                     type:'get',
  7.                     cache: false,
  8.                     success: function (text) {
  9.                         var o = mini.decode(text);
  10.                         //mini.getbyName("id").setValue(text);
  11.                         form.setData(o);
  12.                         form.setChanged(false);
  13.                         mini.getbyName("id").setValue(data2.id);
  14.                     },
  15.                     error: function (){
  16.                         alert("fail");
  17.                     }
  18.                 });
  19.             }
  20.         }
复制代码




作者: qsw    时间: 2017-8-18 11:35:52

数据格式错了。没有data这一层,应该只有[{...}]
作者: qsw    时间: 2017-8-18 11:37:50

qsw 发表于 2017-8-18 11:35
数据格式错了。没有data这一层,应该只有[{...}]

或者这样写 form.setData(o.data);
作者: 鸡胸肉终结者    时间: 2017-8-18 11:41:00

qsw 发表于 2017-8-18 11:35
数据格式错了。没有data这一层,应该只有[{...}]

这个是后台api写好这样返回了,这要怎么处理?因为datagrid控件也用这个api进行查询所以有"data":
作者: qsw    时间: 2017-8-18 11:43:09

qsw 发表于 2017-8-18 11:37
或者这样写 form.setData(o.data);

后台数据应该是Map,不应该是List,应该这样传{“id”:“27”,....}。
你原来的数据如果想放进去,就这样写form.setData(o.data[0]);
作者: 鸡胸肉终结者    时间: 2017-8-18 11:49:46

qsw 发表于 2017-8-18 11:43
后台数据应该是Map,不应该是List,应该这样传{“id”:“27”,....}。
你原来的数据如果想放进去,就这样写 ...

问题解决了,用o.data[0]能填表单了,因为datagrid需要这种格式所以api返回的都是这样的格式,谢谢大神!
作者: felt    时间: 2017-8-18 12:16:01

是的。form.setData(data)的参数data需要是一个对象,你这里是个数组,结构错了。
作者: zyh840206    时间: 2018-5-20 19:03:00

qsw 发表于 2017-8-18 11:43
后台数据应该是Map,不应该是List,应该这样传{“id”:“27”,....}。
你原来的数据如果想放进去,就这样写 ...

为什么我用form.setData(o.data[0]);前台F12就会报错,而且也不显示
作者: dforce    时间: 2018-5-21 09:19:12

zyh840206 发表于 2018-5-20 19:03
为什么我用form.setData(o.data[0]);前台F12就会报错,而且也不显示

1 检查一下o.data[0]的数据结构
2 报什么错误提示




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2