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

QQ登录

只需一步,快速开始

楼主: rday

[处理中3] 聊天功能开发

[复制链接]
发表于 2016-12-27 10:26:19 | 显示全部楼层
rday 发表于 2016-12-26 21:58
请问这个方法该如何写啊!
我是这样处理的,但不行啊。       
       Model.prototype.setState =function(eve ...

setState  方法你应该传递的是$row  
表示当前行对象
方法定义
Model.prototype.setState =function(row){

使用row.val('字段')
和 row.val('字段','值')
进去取值和赋值!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-27 15:39:07 | 显示全部楼层
liangyongfei 发表于 2016-12-27 10:26
setState  方法你应该传递的是$row  
表示当前行对象
方法定义

是否可以批量进行处理?
回复 支持 反对

使用道具 举报

发表于 2016-12-27 15:53:16 | 显示全部楼层
rday 发表于 2016-12-27 15:39
是否可以批量进行处理?

只能每行每行的处理!
如果是批量处理就是 data 组件的加载后事件中 使用data.each 循环,每行数据都修改它的值!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-28 12:18:24 | 显示全部楼层
本帖最后由 rday 于 2016-12-28 12:21 编辑
liangyongfei 发表于 2016-12-27 15:53
只能每行每行的处理!
如果是批量处理就是 data 组件的加载后事件中 使用data.each 循环,每行数据都修改 ...

我用了3种方法获取当前行var row = event.bindingContext.$object;
var row = messageData.getCurrentRow(true);
var row = messageData.find([ 'name' ],[ na ]);
提示'row' is already defined,然后调式时提示row.val is not a function.请问如何处理啊,能否帮我写一下代码。


回复 支持 反对

使用道具 举报

发表于 2016-12-28 13:22:31 | 显示全部楼层
rday 发表于 2016-12-28 12:18
我用了3种方法获取当前行var row = event.bindingContext.$object;
var row = messageData.getCurrentRow ...

data.find 方法获取的是一个js数组
获取其中的的一个row 应该是 rows[0]  表示第一项!
如果不止是一行数据请使用循环
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-28 13:27:20 | 显示全部楼层
liangyongfei 发表于 2016-12-28 13:22
data.find 方法获取的是一个js数组
获取其中的的一个row 应该是 rows[0]  表示第一项!
如果不止是一行数 ...

我还没有加循环,就已经报错
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-28 13:31:29 | 显示全部楼层
liangyongfei 发表于 2016-12-28 13:22
data.find 方法获取的是一个js数组
获取其中的的一个row 应该是 rows[0]  表示第一项!
如果不止是一行数 ...

使用rows[0].val就报错,如下:
QQ图片20161228132818.png
回复 支持 反对

使用道具 举报

发表于 2016-12-28 13:44:11 | 显示全部楼层
rday 发表于 2016-12-28 13:31
使用rows[0].val就报错,如下:

var rows = messageData.find([ 'name' ],[ na ]);
for(var i=0;i<rows.length;i++){
rows.val('字段');
}
首先保证是有符合条件的数据才行!获取的rows  是否为空呢??
rows.length 是否大于0??
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-28 14:41:26 | 显示全部楼层
liangyongfei 发表于 2016-12-28 13:44
var rows = messageData.find([ 'name' ],[ na ]);
for(var i=0;i

现在没有报错,但仍然没有显示,我代码如下:
        Model.prototype.setState = function(row) {
                var messageData = this.comp("messageData");
                var na = localStorage.getItem('na');//获取本地存储的当前登录的用户名
                var rows = messageData.find([ 'name' ],[ na ]);
                        if( rows.length > 0 ){
                                for(var i = 0;i < rows.length;i++){
                                        rows[0].val('state','0');
                        }
                        }
        };

计算规则就是获取该方法
QQ图片20161228143829.png
回复 支持 反对

使用道具 举报

发表于 2016-12-28 15:07:26 | 显示全部楼层
rday 发表于 2016-12-28 14:41
现在没有报错,但仍然没有显示,我代码如下:
        Model.prototype.setState = function(row) {
                var messa ...

计算规则传递参数当行行对象应该是$row
计算规则中只对当前行的这个字段计算结果并return  返回值! 最后只给这行的这个字段赋值  并不需要代码中赋值!

我说的循环赋值指的是在数据全部加载完后处理的!一般在data组件的onAfterRefresh 事件中!


请不要搞混了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 18:29 , Processed in 0.096497 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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