起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1796|回复: 5

[处理中3] 请问如何将跨域获取的JsonArray高效的转成WeX5前端Data?

[复制链接]

16

主题

61

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
QQ
发表于 2017-2-17 08:18:27 | 显示全部楼层 |阅读模式
本帖最后由 dignity568 于 2017-2-17 09:21 编辑

1、WeX5三种数据组件:model、baasData(关联baas中Action查询)、data的应用场景区别?如题所示的方案不宜用baasData,那是用model还是Data呢?
2、本人用AJAX跨域Http post请求获取到后台返回的JSONArray,由于后台接口不能修改,且接口返回数据和baasData列定义存在出入,请问如何操作可以比较高效的实现JsonArray与Data的转换?
后台返回数据格式如下,多层JsonArray:
  1. {
  2.     "data": [
  3.         {
  4.             "time": "2016-01-04",
  5.             "realname": "张三",
  6.             "id": 1,
  7.             "record": [
  8.                 {
  9.                     "name": "三星",
  10.                     "amount": 50
  11.                 },
  12.                 {
  13.                     "name": "苹果",
  14.                     "amount": 100
  15.                 }
  16.             ],
  17.             "remark": ""
  18.         },
  19.         {
  20.             "time": "2016-01-04",
  21.             "realname": "王五",
  22.             "id": 2,
  23.             "record": [
  24.                 {
  25.                     "name": "三星",
  26.                     "amount": 20
  27.                 },
  28.                 {
  29.                     "name": "苹果",
  30.                     "amount": 200
  31.                 }
  32.             ],
  33.             "remark": ""
  34.         }
  35.     ],
  36.     "pagenum": 9,
  37.     "totalpage": 1,
  38.     "flag": 0,
  39.     "errmsg": "查看成功"
  40. }
复制代码



发表于 2017-2-17 10:36:30 | 显示全部楼层
model组件是用于放置data 或 baasData组件的!只有data是存放数据的!model并不是!
数据根式需要你自己转换成符合data组件加载的json结构的数据!
http://docs.wex5.com/wex5-ui-question-list-2032/

1.后端直接处理数据的返回格式!然后js获取数据直接加载到data组件中即可!
2.js获取到这个json对象后!进一步处理他的格式!转成自己需要的,然后再加载到数据中

关于跨域的问题!是需要服务器端支持的!
http://docs.wex5.com/ajax-cross-domain/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

16

主题

61

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
QQ
 楼主| 发表于 2017-2-17 11:05:02 | 显示全部楼层
liangyongfei 发表于 2017-2-17 10:36
model组件是用于放置data 或 baasData组件的!只有data是存放数据的!model并不是!
数据根式需要你自己转 ...

好的,谢谢!
另外baas后台的java为什么没有错误提示,启用java代码校验怎么操作?
回复 支持 反对

使用道具 举报

发表于 2017-2-17 11:40:44 | 显示全部楼层
dignity568 发表于 2017-2-17 11:05
好的,谢谢!
另外baas后台的java为什么没有错误提示,启用java代码校验怎么操作?
...

切换到java视图,在baas上右键,设置为源码路径!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

16

主题

61

帖子

271

积分

中级会员

Rank: 3Rank: 3

积分
271
QQ
 楼主| 发表于 2017-2-18 17:52:35 | 显示全部楼层
liangyongfei 发表于 2017-2-17 10:36
model组件是用于放置data 或 baasData组件的!只有data是存放数据的!model并不是!
数据根式需要你自己转 ...

您好!按照你说的,我参考下面的示把json转成Data之后还是有问题。
  1. var data = this.comp('mainData');
  2.     var options = {
  3.         defaultValues : [
  4.             {sName:'a1',sCode:'b1'},
  5.             {sName:'a2',sCode:'b2'}
  6.         ]
  7.     };  
  8.     data.newData(options);
复制代码
当我有多行记录的时候,怎么写到“defaultValues”里面去呢?拼接的变量赋值进去?
我把json串拼接转换成前端的Data模型,但是转换后的数据打印出来却成了下面这种格式:
  1. {"time":{"changed":0,"value":"2016-12-31","originalValue":null},"name":{"changed":0,"value":"ZS","originalValue":null}}
复制代码
造成data取值的时候报错,请问这是怎么回事(changed,originalValue哪里来得)?怎么防范?


回复 支持 反对

使用道具 举报

发表于 2017-2-20 10:29:04 | 显示全部楼层
dignity568 发表于 2017-2-18 17:52
您好!按照你说的,我参考下面的示把json转成Data之后还是有问题。当我有多行记录的时候,怎么写到“defa ...

newData方法
[{time:'2016-12-31',name:'ZS'},]

你应该想办法,将数据封装成上边这样的格式

如果是使用loadData方法!才能用table类型的数据!试试加一个中括号
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-7-1 10:29 , Processed in 0.105154 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表