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

QQ登录

只需一步,快速开始

查看: 1866|回复: 5

[处理中3] 管乐dataValueChanged,,也不知道是不是这个原因

[复制链接]

88

主题

464

帖子

763

积分

高级会员

Rank: 4

积分
763
QQ
发表于 2017-6-25 02:00:03 | 显示全部楼层 |阅读模式
思想是  attmentchsimple  上传直接在下面list显示    我在另一个页面也是同样的步骤   是用butt按钮显示的,,在这里我想直接显示,,不知道是不是DataValueChanged函数原因,,我猜应该不是 ,, 当attmentchsimple上传一次时   listData就会被覆盖,,只能上传一张,  attmentchsimple绑定的是attData,,求原因
//当上传照片 时   将照片赋值到listData
        Model.prototype.attDataValueChanged = function(event){
        var data =this.comp('attData');
        var id =justep.Shell.userId.get();
        var count = this.comp('listData').count();
        if (data.val('image') != null && data.val('image') != "" && data.val('image') != "[]") {
                image = eval("(" + data.val('image') + ")");
                }
        var max =image.length;
                var img =""
        if(count +  max  > 20)      
        { justep.Util.hint("最多只能上传20张");
        }else{
                 for(var i=0;i<max;i++){
            img= image[i]  ?  JSON.stringify(image[0]) : null;
            this.comp('listData').newData({
                                "defaultValues" : [ {
                                        "image" : img,       
                                        "id":justep.UUID.createUUID(),                                                               
                                } ]
                        });
                        this.comp('attData').clear()
                        this.comp('attData').newData({
                                "defaultValues" : [ {
                                        "id" : id,
                                        "image" : ""                                                               
                                } ]
                        });
        }}
       

        };


发表于 2017-6-26 11:12:55 | 显示全部楼层
1.是参考的这个案例吗?
http://docs.wex5.com/wex5-ui-question-list-2093

你的代码有2个问题!
1.不建议在for循环里面写newData 新增数据!正确的思路应该是for循环生成一个js对象,然后执行一次newData ,把数据加进去就行了!

2.你在attDataValueChanged 事件中执行了
this.comp('attData').clear()
  this.comp('attData').newData

这样的话,这个事件将会重新被触发!并且里面的值会改变的!,我觉得会递归死循环的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

88

主题

464

帖子

763

积分

高级会员

Rank: 4

积分
763
QQ
 楼主| 发表于 2017-6-26 12:02:43 | 显示全部楼层
本帖最后由 q2045377 于 2017-6-26 12:36 编辑

这个情况  attmentchsimple绑定的是attData,  图片显示绑定的是ListData,,上传的时候list被赋值了,被绑定的list组件图片已经显示了,,但是再上传一张,list就被覆盖了。但是listData,只有新增没有删除事件
这个  如果是valuechange的原因,,,我不想用button组件,,,应该在哪个事件里写呢
还有  当前行点击事件  var  spanDom = $(event.currentTarget).find("a[test='"+event.bindingContext.$object.index()+"']");
会发现  css设定不了   spanDom .syle.css( )  ,  $(spanDom).css();        spanDom[0] .syle.css( ),$(spanDom[0]).css(),,都不行,,应该用什么方法
回复 支持 反对

使用道具 举报

发表于 2017-6-26 16:05:23 | 显示全部楼层
q2045377 发表于 2017-6-26 12:02
这个情况  attmentchsimple绑定的是attData,  图片显示绑定的是ListData,,上传的时候list被赋值了,被 ...

可以接管  onAfterRefresh  事件!刷新后的事件!
或者是新增后事件!都可以啊!

另外不要在这些事件中重新 修改这个data组件的数据了!否则就会导致事件一直被触发的!

比如新增后事件中,你又调用了刷新,就有会触发增后事件,再次调用刷新!肯定不能这样做的!
你想想你的逻辑吧!

data数据加载一次放进去就好了吧!不要想着一直刷新!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

88

主题

464

帖子

763

积分

高级会员

Rank: 4

积分
763
QQ
 楼主| 发表于 2017-6-26 16:40:59 | 显示全部楼层
liangyongfei 发表于 2017-6-26 16:05
可以接管  onAfterRefresh  事件!刷新后的事件!
或者是新增后事件!都可以啊!

好的  谢谢  还有一个问题
当前行点击事件  var  spanDom = $(event.currentTarget).find("a[test='"+event.bindingContext.$object.index()+"']");
会发现  css设定不了   spanDom .syle.css( )  ,  $(spanDom).css();        spanDom[0] .syle.css( ),$(spanDom[0]).css(),,都不行,,应该用什么方法
回复 支持 反对

使用道具 举报

发表于 2017-6-26 18:34:40 | 显示全部楼层
q2045377 发表于 2017-6-26 16:40
好的  谢谢  还有一个问题
当前行点击事件  var  spanDom = $(event.currentTarget).find("a[test='"+ev ...

你获取的是一个jquery对象!

http://docs.wex5.com/wex5-ui-question-list-2073/

请查询jquery 手册如何修改css样式!请上网查吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 03:18 , Processed in 0.055993 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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