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

QQ登录

只需一步,快速开始

查看: 1838|回复: 8

[处理中3] 数据交互问题

[复制链接]

13

主题

32

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
发表于 2017-4-13 16:47:18 | 显示全部楼层 |阅读模式
  1. navigator.contacts.pickContact(onSuccess);
  2.          function onSuccess(contacts) {
  3.          if(contacts.phoneNumbers && contacts.phoneNumbers.length) {
  4.                  var phone = contacts.phoneNumbers[0].value;
  5.         }
  6.          var name=contacts.displayName;
  7.          alert(name);
  8.          alert(phone);
  9.          localStorage.setItem("name", name);
  10.          localStorage.setItem("phone", phone);
  11.     };
  12.    
  13.    
  14.     function onError(contactError) {
  15.         alert('onError!');
  16.     };
  17.     var row = event.bindingContext.$object;
  18.     var n = localStorage.getItem("name")
  19.     var p = localStorage.getItem("phone")
  20.     this.comp("input1").val(n,row);       
  21.     this.comp("input2").val(p,row);
复制代码


用了contact的插件后 想直接将获取的数据放入input中,但是放入后需要再点击一下button才可以显示上一个数据
发表于 2017-4-13 17:01:16 | 显示全部楼层
input 有没有绑定data组件呢??
如果有,建议给data组件字段 进行赋值!!
data.setValue('字段','值')
这是推荐的做法!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

13

主题

32

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
 楼主| 发表于 2017-4-13 17:02:57 | 显示全部楼层
有没有不用data的好方法
回复 支持 反对

使用道具 举报

发表于 2017-4-13 17:07:14 | 显示全部楼层
Autumn 发表于 2017-4-13 17:02
有没有不用data的好方法

那就是this.comp("input1").val('值');  
直接就能赋值啊!!请看input提供的API 文档


我见你的代码中使用了event.bindingContext.$object;
请问你是在list中使用的吗??

那更建议你使用data组件赋值才对!!

数据绑定是最简单的方法!!建议一切通过修改数据组件实现!!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

13

主题

32

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
 楼主| 发表于 2017-4-13 17:22:54 | 显示全部楼层
我要做的这个是可以通过通讯录查找,也可以自己输入,所以是个input,不是list  我是将通讯录中获取的值输入到input中,  我这样写了后发现 数据不会立马传到input中,而是再点一下button才会出现在input上
回复 支持 反对

使用道具 举报

发表于 2017-4-13 17:53:06 | 显示全部楼层
Autumn 发表于 2017-4-13 17:22
我要做的这个是可以通过通讯录查找,也可以自己输入,所以是个input,不是list  我是将通讯录中获取的值输 ...

button 做了什么??本地测试没问题

this.comp("input1").val('值');   直接就可以赋值的!

onload  事件中写的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

13

主题

32

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
 楼主| 发表于 2017-4-13 18:46:49 | 显示全部楼层
button是调出手机的通讯录,    放入input没有问题,问题是 放入后,input显示出来需要再次点击button
回复 支持 反对

使用道具 举报

13

主题

32

帖子

82

积分

初级会员

Rank: 2

积分
82
QQ
 楼主| 发表于 2017-4-13 18:47:32 | 显示全部楼层
liangyongfei 发表于 2017-4-13 17:53
button 做了什么??本地测试没问题

this.comp("input1").val('值');   直接就可以赋值的!


button是调出手机的通讯录,    放入input没有问题,问题是 放入后,input显示出来需要再次点击button
回复 支持 反对

使用道具 举报

发表于 2017-4-14 09:33:43 | 显示全部楼层
我知道了!
因为这个回调方法是异步执行的!所以它后面的代码运行时phone  和 name还没有赋值呢!!!

你应该将赋值的代码写在
onSuccess成功回调中

在外层定义一个变量  var me= this;
在onSuccess回调中使用 me.comp('input1').val(name) 进行赋值!!

因为第一次执行的时候,后面的代码中变量还没赋值呢!
回调函数是后执行的

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-2 03:30 , Processed in 0.085365 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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