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

QQ登录

只需一步,快速开始

查看: 4738|回复: 16

[处理中3] 求助,windowdialog带回的数据保存始终不能修改数据库中的...

[复制链接]

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
发表于 2016-12-6 10:09:03 | 显示全部楼层 |阅读模式
对话框infodetail.w返回数据到主窗口的代码:
  1.         Model.prototype.backBtnClick = function(event){
  2. alert('info_id='+window.id);
  3.                 this.comp("windowReceiver1").windowEnsure({data:{i:window.i,id:window.id,}});
  4.         };
复制代码

主窗口infolist.w接受端代码:
  1.         Model.prototype.windowDialog1Receive = function(event){
  2.                 alert('i='+event.data.data.i);
  3.                 alert('id='+event.data.data.id);
  4. var data = this.comp('infoData');
  5. debugger;
  6. var e = data.getValue('enjoy_count');
  7.                 var h =data.getValue('hate_count');
  8.                 var i =Number(event.data.data.i);
  9.                 e=e+i;
  10.                 h=h-i;
  11.                 data.setValue('enjoy_count',e);
  12.                 data.setValue('hate_count',h);
  13.                 data.saveData();
  14.                 alert('e='+data.getValue('enjoy_count'));                <font color="#ff8c00">  //读出来是对的</font>
  15.                 alert('h='+data.getValue('hate_count'));                 <font color="#2e8b57">   //这个也对</font>
复制代码
如下图,在调试的时候都是对的。再次从infolist点击进去对应的infodetail,数据还是对的,就是数据库没有修改,setValue和savedata都不起作用。感觉是修改了infodetail的那个data里的数据(因为再次打开时数值是对的),如何才能修改数据库的值???
QQ截图20161206095905.png


64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-6 10:18:13 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2016-12-6 10:49:35 | 显示全部楼层
ufo1982ufo 发表于 2016-12-6 10:18
http://bbs.wex5.com/forum.php?mod=viewthread&tid=109419&highlight=windowdialog%2B%E4%BF%9D%E5%AD%98 ...

建议你自己看下案例:/UI2/demo/page/index.w
文档:http://docs.wex5.com/page-interaction/

传参就是固定写法!

另外,请使用shellImp  定义的门户页面作为首页打开功能!
这样打开的页面属于单页应用!,如果不是单页应用,就只能使用url传惨了!对象传参是做不到的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-6 11:14:39 | 显示全部楼层
liangyongfei 发表于 2016-12-6 10:49
建议你自己看下案例:/UI2/demo/page/index.w
文档:http://docs.wex5.com/page-interaction/

我使用的父页面已经接收到子页面传来的参数(json),而且在父页面调用保存数据方法,再次对baasdata组件getValue也取到了我对应修改的值了,应该就是可以保存数据才对嘛,但数据库一点变化都没有。那getValue正确又怎么回事?
另外,看了你回复别人的帖子说:“shell是并列关系,windowdialog是父子关系,打开子页面必须要有父页面”,如果需要分享子页面的内容是不是就需要shell(而不是windowdialog)?
回复 支持 反对

使用道具 举报

发表于 2016-12-6 11:20:27 | 显示全部楼层
ufo1982ufo 发表于 2016-12-6 11:14
我使用的父页面已经接收到子页面传来的参数(json),而且在父页面调用保存数据方法,再次对baasdata组件 ...

是的,子页面必须依赖父页面!
你可以在浏览器刷新一个windowDialog 的URL 试试

baasdata 可以取值,只能说明前段已经存在了,但是并不保证后端也存上了!需要调用data.saveData() 进行保存!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-6 11:37:19 | 显示全部楼层
本帖最后由 ufo1982ufo 于 2016-12-6 11:38 编辑
liangyongfei 发表于 2016-12-6 11:20
是的,子页面必须依赖父页面!
你可以在浏览器刷新一个windowDialog 的URL 试试

我也担心前端改了,后端没有修改的问题,所以我都是先save后getValue,是不行的(无论是在debugger里看,还是alert输出,值都对,就是数据库没有改)。
  1.                 var e = data.getValue('enjoy_count');
  2.                 var h =data.getValue('hate_count');
  3.                 var i =Number(event.data.data.i);
  4.                 e=e+i;
  5.                 h=h-i;
  6.                 data.setValue('enjoy_count',e);
  7.                 data.setValue('hate_count',h);
  8.                 data.saveData();
  9.                 alert('e='+data.getValue('enjoy_count'));
  10.                 alert('h='+data.getValue('hate_count'));
  11.                
复制代码

主要是页面都做了4个了,希望在此基础上改,重做的话时间耗费过多啊!是不是windowdialog本身的问题?
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-6 11:41:06 | 显示全部楼层
我还试了windowDialog1Received和windowDialog1Receive看看,不管接收还是已经接受,值都是正确的,就是数据库不变。
回复 支持 反对

使用道具 举报

发表于 2016-12-6 11:59:20 | 显示全部楼层
ufo1982ufo 发表于 2016-12-6 11:41
我还试了windowDialog1Received和windowDialog1Receive看看,不管接收还是已经接受,值都是正确的,就是数 ...

调用data.saveData() 方法执行成功后,数据库才会同步数据的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2016-12-6 12:24:08 | 显示全部楼层
纯纯粹粹.png
执行成功了,回调出来了,数据库还是不变。我也没有办法了!
回复 支持 反对

使用道具 举报

发表于 2016-12-6 13:43:38 | 显示全部楼层
ufo1982ufo 发表于 2016-12-6 12:24
执行成功了,回调出来了,数据库还是不变。我也没有办法了!

请问你是在哪儿看的数据库数据 ??如果是在studio中,
请刷新数据库表看看!

如果是baasData组件,肯定会保存上的!如果是data组件,请自己写代码实现!
可以参考下baas的案例,保存操作有什么区别“”?/UI2/demo/baas/simpleData/index.w
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 18:27 , Processed in 0.062933 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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