您的位置:首页 > 移动开发 > 微信开发

微信小程序 传值取值的几种方法总结

2018-01-22 00:00 281 查看
小程序里常见的取值有以下几种,一个完整的项目写下来,用到的概率几乎是100%。

列表index下标取值

页面传值

form表单取值

1. 列表index下标取值

实现方式是:data-index="{{index}}"挖坑及e.currentTarget.dataset.index来填坑即可 。

1.1 生成值

1
<image src=
"../../../images/icon_delete.png"
/><text>删除</text>

在删除图标与文字添加data-index="{{index}}"自定义属性以及绑定点击事件bindtap="delete"

<view data-index="{{index}}" bindtap="delete" wx:for="{{array}}"><image src="../../../images/icon_delete.png" /><text>删除{{item}}</text></view>

实现delete方法,取到index下标值。





delete: function (e) {
var index = parseInt(e.currentTarget.dataset.index);
console.log("index" + index);
}

如果不使用e.currentTarget而使用e.target会怎样?

将会导致仅点中<view>才能输出index值,点子元素<image>或<text>将输出NaN。





那target有什么用呢,用于区分子元素与外部元素要分别处理时,比如换用户头像的场景,点击头像本身预览大图,而头像所在的点整一行,将是切换头像。





1.2 取出值

试图从index数据中找出相应元素删除地址

// 找到当前地址AVObject对象
var address = that.data.addressObjects[index];
// 给出确认提示框
wx.showModal({
title: '确认',
content: '要删除这个地址吗?',
success: function(res) {
if (res.confirm) {
// 真正删除对象
address.destroy().then(function (success) {
// 删除成功提示
wx.showToast({
title: '删除成功',
icon: 'success',
duration: 2000
});
// 重新加载数据
that.loadData();
}, function (error) {

});
}
}
})


2. 页面传值

从收货地址列表页中传地址id到编辑页面,以读取原地址供修改之用
address/list页面实现以下代码

<view class="container" data-index="{{index}}" bindtap="edit"><image src="../../../images/icon_edit.png" /><text>编辑</text></view>

js:

edit: function (e) {
var that = this;
// 取得下标
var index = parseInt(e.currentTarget.dataset.index);
// 取出id值
var objectId = this.data.addressObjects[index].get('objectId');
wx.navigateTo({
url: '../add/add?objectId='+objectId
});
},

address/add页面实现onLoad(options)方法,从url路径中获取objectId

onLoad: function (options) {
var objectId = options.objectId
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: