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

QQ登录

只需一步,快速开始

查看: 2053|回复: 9

[处理中3] 图片显示问题

[复制链接]

23

主题

71

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
发表于 2017-3-24 11:48:54 | 显示全部楼层 |阅读模式
我显示多张图片时候  只显示一张  显示的是最后一张 我的data和list如图所示  两个list都是加载的同一个data  请问我的js代码哪里不对?? 获取到的路径也是所有图片的路径  用过for循环没有问题js代码是Model.prototype.getImageUrl = function(row) {

                var forumdata = this.comp("forumdata");
                var src = null;
                var defaultValues = [];
                var value = forumdata.getValue('img');
                var ownerID = forumdata.getValue('id');
                if (value) {
                        try {
                                var jsonList = eval("(" + value + ")");
                                if (jsonList instanceof Array) {
                                        for (var i = 0; i < jsonList.length; i++) {
                                                var realFileName = jsonList[i]["realFileName"];
                                                var storeFileName = jsonList[i]["storeFileName"];
                                                var operateType = "browse";
                                                var url = this.actionUrl + '?realFileName='
                                                                + realFileName + '&storeFileName='
                                                                + storeFileName + '&ownerID=' + ownerID
                                                                + '&operateType=' + operateType;
                                                src = require.toUrl(url);
                                                defaultValues.push({
                                                        img : src
                                                });
                                        }

                                }
                        } catch (e) {
                                console.log(e);
                        }
                        return src;
                }

                forumdata.clear();
                forumdata.newData({
                        defaultValues : defaultValues
                });

        };
        Model.prototype.forumdataCustomRefresh = function(event) {
                var forumdata = this.comp("forumdata");
                justep.Baas.sendRequest({
                        "url" : "/uploadimg/forumlist",
                        "action" : "forum",
                        "params" : {
                                "examDm" : "587"
                        },
                        "success" : function(resultData) {

                                forumdata.loadData(resultData);
                        },
                        "error" : function() {
                                alert("系统错误!");
                        }
                });
        };
%JG}$81{J5_Q9E90I44{{P6.png
XC@LVUZ%JOXTC9$S%WP]TEL.png
发表于 2017-3-24 12:00:10 | 显示全部楼层
需要将list中当前行 的对象传递进去啊!
调用的时候,写 $model.getImageUrl($object)

获取当前行字段应该是row.val('字段')
你定义的getImageUrl  好像根本就没有使用到row这个参数!!根本没使用到当前行的数据!!那么每一行执行getImageUrl  返回的结果都是一样的!!图片显示当然也是一样的啦!

需要根据当前行字段,获取属于当前行的图片URL地址才行的!
可以参考:/UI2/system/components/justep/list/demo/news.w
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

23

主题

71

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2017-3-24 14:34:49 | 显示全部楼层
liangyongfei 发表于 2017-3-24 12:00
需要将list中当前行 的对象传递进去啊!
调用的时候,写 $model.getImageUrl($object)

我就是写的$model.getImageUrl($object)   但是new.w文件中  return require.toUrl(row.val('fImage'));    和我这里情况不大一样 我弄不清吧row.vai('img')写在哪里
回复 支持 反对

使用道具 举报

发表于 2017-3-24 15:05:12 | 显示全部楼层
liucong 发表于 2017-3-24 14:34
我就是写的$model.getImageUrl($object)   但是new.w文件中  return require.toUrl(row.val('fImage'));  ...

row.val('img') 表示获取当前行 字段为img 的值!!你的逻辑是怎样的!你不清楚吗??
如果是想要获取attachmentSimple组件中的图片,应该参考
http://docs.wex5.com/wex5-ui-question-list-2093
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

23

主题

71

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2017-3-24 15:25:46 | 显示全部楼层
liangyongfei 发表于 2017-3-24 15:05
row.val('img') 表示获取当前行 字段为img 的值!!你的逻辑是怎样的!你不清楚吗??
如果是想要获取att ...

我的逻辑已经糊涂了   我的代码就是仿着这个例子写的 你这是在当前页面显示的  我是在不同页面显示的  还有就是你写的是两个data  我只有一个data  必须有两个data吗   我1楼发的有图片(data和两个list) 你看我的代码和你的差不多   url都是获取出来的   不像/UI2/system/components/justep/list/demo/news.w文件中的require.toUrl(row.val('fImage'))  所以不知道把获取当前行的值写在哪里啊  
回复 支持 反对

使用道具 举报

发表于 2017-3-24 15:48:29 | 显示全部楼层
liucong 发表于 2017-3-24 15:25
我的逻辑已经糊涂了   我的代码就是仿着这个例子写的 你这是在当前页面显示的  我是在不同页面显示的  还 ...

你使用  for  循环!!每次都是将最后一个 图片的 src 的值进行赋值的!
当然只显示最后张图片了!!

最起码你得根据当前行  获得一个索引的值,var index = data.getRowIndex(row)!!然后
jsonList[index] 获取到属于当前行的图片!!

不要for循环!否则前边 src  的值都被覆盖了
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

23

主题

71

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2017-3-27 08:49:13 | 显示全部楼层
liangyongfei 发表于 2017-3-24 15:48
你使用  for  循环!!每次都是将最后一个 图片的 src 的值进行赋值的!
当然只显示最后张图片了!!

我根据你的提示  去掉for循环  代码如下
Model.prototype.getImageUrl = function(row) {
                var src = null;
                var forumdata = this.comp("forumdata");
                var defaultValues = [];
                var value = forumdata.getValue('img');
                alert(value);
                var ownerID = forumdata.getValue('id');
                if (value) {
                        try {
                                var jsonList = eval("(" + value + ")");
                                if (jsonList instanceof Array) {
                                var index = forumdata.getRowIndex(row);
                                        var realFileName = jsonList[index]["realFileName"];
                                        var storeFileName = jsonList[index]["storeFileName"];
                                        var ownerID = row.val('id');
                                        var operateType = "browse";
                                        var url = this.actionUrl + '?realFileName=' + realFileName
                                                        + '&storeFileName=' + storeFileName + '&ownerID='
                                                        + ownerID + '&operateType=' + operateType;

                                        src = require.toUrl(url);

                                }
                        } catch (e) {
                                console.log(e);
                        }
                        return src;
                }
        };



现在这样也就只显示第一张图片
回复 支持 反对

使用道具 举报

发表于 2017-3-27 09:46:03 | 显示全部楼层
liucong 发表于 2017-3-27 08:49
我根据你的提示  去掉for循环  代码如下
Model.prototype.getImageUrl = function(row) {
                var src = nu ...

那你debugger调试代码看一下吧!!
index 获取 的值是多少呢?
按理说只要 index值是不一样的!!获取的图片URL 就不一样才对!!
莫非 最终生成的URL地址还是同一个吗???

row 传参进来是同一行吗?

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

23

主题

71

帖子

135

积分

初级会员

Rank: 2

积分
135
QQ
 楼主| 发表于 2017-3-27 10:10:55 | 显示全部楼层
liangyongfei 发表于 2017-3-27 09:46
那你debugger调试代码看一下吧!!
index 获取 的值是多少呢?
按理说只要 index值是不一样的!!获取的 ...

按我发的代码只获取的index=0  所以只有一个  是不是最后我return 的原因  我把加newData这个方法放进去的时候也是不行  
回复 支持 反对

使用道具 举报

发表于 2017-3-27 11:12:30 | 显示全部楼层
liucong 发表于 2017-3-27 10:10
按我发的代码只获取的index=0  所以只有一个  是不是最后我return 的原因  我把加newData这个方法放进去 ...

forumdata.getRowIndex(row); 都是0吗??
那说明row 对象只是第一行吗? 你是怎么传参的??list中正确写法应该是
$model.getImageUrl($object)
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 12:33 , Processed in 0.069832 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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