一、数组事件绑定,事件传递数据
1.wxml
<text>
姓名:{{name}}
</text>
<block wx:for="{{list}}">
<button bind:tap="nameClick2" data-name="{{item}}">修改:{{item}}</button>
</block>
2.js
/**
* 页面的初始数据
*/
data: {
name: '张三',
list: ['张三', '李四', '王五', '赵六'],
},
//列表修改
nameClick2(e) {
var name = e.currentTarget.dataset.name;
console.info(name);
this.setData({
'name': name
});
},
3.css 忽略
重点说明:
//微信小程序 data 数据单项绑定,setData方法修改属性并且渲染页面展示
// this.data.name='李四';
this.setData({
'name': '李四'
});
显示效果:
二、微信小程序 setData 修改对象
1.wxml
<text>
姓名:{{stu.name}},年龄:{{stu.age}}
</text>
<button bind:tap="ageClick">
增加年龄
</button>
2.js
//修改数据三
ageClick() {
var stu = this.data.stu;
console.info(stu.age);
//方案1,修改整个对象
// stu.age=stu.age+1;
// this.setData({
// stu:stu
// });
//方案2,根据路径修改变量
this.setData({
'stu.age': stu.age + 1
});
},
3.css忽略
重点解读,根据路径修改对象:
//方案2,根据路径修改变量
this.setData({
'stu.age': stu.age + 1
});
三、微信小程序,setData 修改 数组中的属性
1.wxml
<block wx:for="{{stulist}}">
<view style="padding: 20px;border:1px solid bisque;">
<text>
姓名:{{item.name}},年龄:{{item.age}}
</text>
<button bind:tap="stulistClick" data-index="{{index}}">
增加年龄
</button>
</view>
</block>
2.js
//修改数据 ,数组中的对象的属性
stulistClick(e) {
var index = e.currentTarget.dataset.index;
var stulist = this.data.stulist;
//修改 方案1
//var stu = stulist[index];
// stu.age = stu.age + 1;
// this.setData({
// ['stulist[' + index + ']']: stu
// });
//方案2
this.setData({
['stulist[' + index + '].age']: stulist[index].age + 1
});
},
3.css 代码忽略
重点整理:
//方案2
this.setData({
['stulist[' + index + '].age']: stulist[index].age + 1
});
更多:
微信小程序数组绑定使用案例(一)