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

QQ登录

只需一步,快速开始

查看: 6037|回复: 13

[处理中1] 如何获取data对象的find方法返回的结果集中的某字段值

[复制链接]

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
发表于 2016-10-13 16:43:41 | 显示全部楼层 |阅读模式
请教个问题:
data组件用find函数获取结果list集合,我想取这个集合里面的某一字段值应该用什么方式呢??我用.val()提示没这个方法。。。比如说如下代码:
var rows = this.comp("userData").find(['fid'],['123'],true,false,true);
如果有记录,那我怎么从rows里获取具体某字段的值呢,比如说有name字段,那我怎么从rows这个结果集里获取name对应的值的,我用rows.fname,或者rows['fname'],或者rows.val("fname")都不好使

41

主题

103

帖子

199

积分

初级会员

Rank: 2

积分
199
QQ
发表于 2016-10-13 16:46:57 | 显示全部楼层
rows 是一个数组
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-13 17:05:41 | 显示全部楼层
find方法,就类似于过滤,他的返回值,你可以打一个debugger在控制台,先看一下
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-10-14 14:45:36 | 显示全部楼层
本帖最后由 carbinechun 于 2016-10-14 14:49 编辑
闰土 发表于 2016-10-13 17:05
find方法,就类似于过滤,他的返回值,你可以打一个debugger在控制台,先看一下 ...

看find方法介绍,说返回是行对象数组。。我实际代码中debugger看的时候显示Array[1],展开0:n在下级row里面能看到各字段仍为对象类型。
  • 0: n
    • data: n
    • row: Object
    • 在row下面我找到对应的字段信息   :
    • FPwd: Object
      • value: c
        • _subscriptions: Object
        • define: Object
        • latestValue: "123456"
        • readonly: Object
        • __proto__: t
      • __proto__: Object


    • 控制台能看到具体信息,但是具体怎么来进行值的获取不知道啊,这一层层的看的迷糊了                              






传说中路过
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-10-14 15:24:22 | 显示全部楼层
本帖最后由 carbinechun 于 2016-10-14 15:29 编辑
闰土 发表于 2016-10-13 17:05
find方法,就类似于过滤,他的返回值,你可以打一个debugger在控制台,先看一下 ...

rows[0]['row']['FPwd'].value['latestValue']
只能这样来获取值么???
如果我的业务逻辑是这样:根据用户名确认用户信息是否存在,如果存在,则进行密码校验,获取FPwd的值我是为了和输入的密码进行校验,除了获取这个值的方法还能用其他方式么,除了把密码作为原data组件find方法条件之一的方式


说到这里其实我问题的主要意思是这样,如果用find方式来确认用户信息是否存在时,如果在find条件字段中我需要验证每个字段是否一致,那应该怎么做,因为如果多条件的话结果只有一个,无法确认是哪个字段值不对造成的查询结果为0,比如说登陆时要输入用户名、密码、手机号、身份证号,我这四个都需要验证是否正确那在wex5中应该用什么方式呢?
传说中路过
回复 支持 反对

使用道具 举报

79

主题

581

帖子

3464

积分

论坛元老

Rank: 8Rank: 8

积分
3464
QQ
发表于 2016-10-14 15:48:09 | 显示全部楼层
用data的each循环方法,在循环里做判断

小尾巴~~世间万难,无非一拖二懒三不读书
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-10-17 09:22:20 | 显示全部楼层
cc_day 发表于 2016-10-14 15:48
用data的each循环方法,在循环里做判断

说到这里其实我问题的主要意思是这样,如果用find方式来确认用户信息是否存在时,如果在find条件字段中我需要验证每个字段是否一致,那应该怎么做,因为如果多条件的话结果只有一个,无法确认是哪个字段值不对造成的查询结果为0,比如说登陆时要输入用户名、密码、手机号、身份证号,我这四个都需要验证是否正确那在wex5中应该用什么方式呢?
传说中路过
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-10-17 09:31:52 | 显示全部楼层
carbinechun 发表于 2016-10-14 15:24
rows[0]['row']['FPwd'].value['latestValue']
只能这样来获取值么???
如果我的业务逻辑是这样:根据用 ...

rows[0]['row']['FPwd'] 这个拿到一个行数组对象时,就可以rows[0]['row']['FPwd'].val("字段"),来拿你想要的值,如果查多个的话,用find就都要求一次找,你这样的逻辑,不如使用setFilter ,你肯定要把用户信息数据都保存在数据库中巴?然后直接过滤数据库中的数据,

你使用find 在前端操作数据,有一个缺点,当数据量十分庞大时,循环多了,前端页面就会很卡
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

0

主题

27

帖子

107

积分

初级会员

Rank: 2

积分
107
QQ
发表于 2016-10-17 09:55:13 | 显示全部楼层
data.val("userData",rows[i])
记得应该是这种写法获取find返回的行数据组成
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-10-17 10:41:56 | 显示全部楼层
闰土 发表于 2016-10-17 09:31
rows[0]['row']['FPwd'] 这个拿到一个行数组对象时,就可以rows[0]['row']['FPwd'].val("字段"),来拿你 ...

用setFilter的话,如果校验多个字段的话也要分开进行数据过滤么?如果把几个条件同时拿过来用能区分开是哪个条件造成的数据查不到的情况么?
传说中路过
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 17:28 , Processed in 0.063409 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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