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

QQ登录

只需一步,快速开始

查看: 2412|回复: 13

[结贴] applyUpdates()

[复制链接]

46

主题

150

帖子

451

积分

中级会员

Rank: 3Rank: 3

积分
451
QQ
发表于 2016-5-21 16:41:46 | 显示全部楼层 |阅读模式
data新增一条数据,保存成功后,调用data.applyUpdates()的方法,new数据行变为none
如果不调用data.applyUpdates(),new数据行会是new状态吗
如果保存失败,就不会调用data.applyUpdates(),这种情况下new数据行的状态是什么
发表于 2016-5-23 10:11:45 | 显示全部楼层
保存失败,当然还是以前的状态!这个你自己打印一下就知道了!
使用方法data.getRowState(行对象); 就可以得到!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

46

主题

150

帖子

451

积分

中级会员

Rank: 3Rank: 3

积分
451
QQ
 楼主| 发表于 2016-5-23 11:25:04 | 显示全部楼层
Model.prototype.data2CustomSave = function(event){

    this.datasave();
    console.log("11111========="+gxdata2.getRowState (gxdata2.getCurrentRow()));
    }
打印11111=========new
Model.prototype.data2AfterSave = function(event){
     var data2=this.comp("data2");
     console.log(data2.getValue("equnumall")+"22222========="+data2.getRowState (data2.getCurrentRow()));
        };
打印635555555555555522222=========none

很奇怪,为什么在保存失败后,CustomSave中打印当前行为new
但是在AfterSave中就是none了呢;
没有调用data.applyUpdates()
回复 支持 反对

使用道具 举报

发表于 2016-5-23 15:45:54 | 显示全部楼层
kmijnuhb 发表于 2016-5-23 11:25
Model.prototype.data2CustomSave = function(event){

    this.datasave();

这个是组件自己封装了!只要你执行的是data.saveData()方法,按照正常的逻辑执行,保存成功后,在执行AfterSave方法以前,这个方法已经执行过了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

46

主题

150

帖子

451

积分

中级会员

Rank: 3Rank: 3

积分
451
QQ
 楼主| 发表于 2016-5-23 16:03:13 | 显示全部楼层
this.datasave();是我自己写的的方法
但是现在自定义CustomSave执行失败,AfterSave之前也会执行data.applyUpdates()吗
回复 支持 反对

使用道具 举报

发表于 2016-5-23 18:10:34 | 显示全部楼层
kmijnuhb 发表于 2016-5-23 16:03
this.datasave();是我自己写的的方法
但是现在自定义CustomSave执行失败,AfterSave之前也会执行data.apply ...

应该不会吧!保存失败了,为什么要更新data组件中行数据的状态呢?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

46

主题

150

帖子

451

积分

中级会员

Rank: 3Rank: 3

积分
451
QQ
 楼主| 发表于 2016-5-23 18:49:51 | 显示全部楼层
保存失败了,应不更新date状态,但是AfterSave中
console.log(data2.getValue("equnumall")+"22222========="+data2.getRowState (data2.getCurrentRow()));
会打印none呢
我需要保存失败了还是new的状态,怎么回事呢
回复 支持 反对

使用道具 举报

发表于 2016-5-24 10:10:14 | 显示全部楼层
kmijnuhb 发表于 2016-5-23 18:49
保存失败了,应不更新date状态,但是AfterSave中
console.log(data2.getValue("equnumall")+"22222======= ...

保存失败了就不应该执行AfterSave才对!保存失败应该直接抛出异常!不应该再往下执行的!如果你往下执行了!代码就按照保存成功的逻辑走了!

如果是异步的,应该接管执行doSaveAfter处理!
看下API文档或者http://docs.wex5.com/comps-data/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

46

主题

150

帖子

451

积分

中级会员

Rank: 3Rank: 3

积分
451
QQ
 楼主| 发表于 2016-5-24 17:17:21 | 显示全部楼层
"complete" : function(xhr) {
                                        if (xhr.readyState == 4 && xhr.status == 200) {
                                                if (options.success) {
                                                        options.success.call(this, xhr.responseJSON, xhr);
                                                }
                                        } else {
                                                var msg = self.getErrorMsg(xhr);
                                                if (options.error) {
                                                        options.error.call(this, msg, xhr);
                                                } else {
                                                       
                                                        if(!window.showDebug){
                                                                self.showError(msg);
                                                        }else{
                                                                console.log(msg);
                                                        }
                                                }
                                        }
                                },


保存失败会走options.error自定义的错误回掉方法,
错误回掉方法中要手动爆出异常throw new error("arguments are not numbers");吗
但是还会打印none呢
怎么让错误了不往下执行
回复 支持 反对

使用道具 举报

发表于 2016-5-24 18:23:27 | 显示全部楼层
kmijnuhb 发表于 2016-5-24 17:17
"complete" : function(xhr) {
                                        if (xhr.readyState == 4 && xhr.status == 200) {
                                                if (options. ...

请问你是异步执行的吗??同步执行肯定是没问题!
异步执行的话,需要自己在doSaveAfter事件中处理抛出异常!

因为是异步的,在onCustomSave事件中抛出异常是无法处理的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 01:40 , Processed in 0.084768 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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