微信小程序数组绑定使用案例(一)

微信小程序数组绑定案例,修改数组中的值

1.Wxml 代码

<view class="list">
  <view class="item {{item.ischeck?'active':''}}" wx:for="{{list}}">
    <view class="title">{{item.name}} <text>({{item.id}})</text></view>
    <view class="btndiv">
      <button>上移动</button>
      <button bind:tap="downClick" data-index="{{index}}">下移动</button>
      <button bind:tap="delClick" data-index="{{index}}">删除</button>
      <checkbox checked="{{item.ischeck}}" bind:tap="checkClick" data-index="{{index}}">选中</checkbox>
    </view>
  </view>
</view>

2.js 代码

Page({

  /**
   * 页面的初始数据
   */
  data: {
    list: [{
        id: 1,
        name: '张三',
        ischeck: true
      },
      {
        id: 2,
        name: '李四'
      },
      {
        id: 3,
        name: '王五'
      },
      {
        id: 4,
        name: '赵六'
      },
    ]
  },
  //选中点击事件
  checkClick(e) {
    var index = e.currentTarget.dataset.index;
    var list = this.data.list;
    // console.info(index);
    //修改页面
    this.setData({
      ['list[' + index + '].ischeck']: !list[index].ischeck
    });
  },
  //删除
  delClick(e) {
    var index = e.currentTarget.dataset.index;
    var list = this.data.list;
    list.splice(index, 1);
    this.setData({
      list: list
    });
  },
  //下移动
  downClick(e) {
    var index = e.currentTarget.dataset.index;
    var list = this.data.list;
    var next = index + 1;
    if (next == list.length) { //临界值
      //next=0;
      return;
    }
    //交换位置
    var temp = list[index];
    list[index] = list[next];
    list[next] = temp;
    this.setData({
      list: list
    });
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  }
})

3.css代码忽略

重点解读:可以使用js对象路径方式,修改变量并重新绘制页面

    this.setData({

      ['list[' + index + '].ischeck']: !list[index].ischeck

    });

实现效果:

更多:

input组件 type为nickname pc端获取不到这个绑定的值?

微信小程序触屏事件_上划下划事件

微信小程序事件绑定

相关推荐

  1. 程序 事件

    2024-07-21 05:50:03       20 阅读
  2. 程序:input双向

    2024-07-21 05:50:03       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 05:50:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 05:50:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 05:50:03       45 阅读
  4. Python语言-面向对象

    2024-07-21 05:50:03       55 阅读

热门阅读

  1. 实战:shell脚本练习

    2024-07-21 05:50:03       14 阅读
  2. Spring Boot 单元测试什么时候需要添加 @RunWith

    2024-07-21 05:50:03       23 阅读
  3. leetcode--链表类题目总结

    2024-07-21 05:50:03       15 阅读
  4. Python实现精确读取PDF文件的全部内容(8)

    2024-07-21 05:50:03       16 阅读
  5. Python模块化编程:import机制剖析

    2024-07-21 05:50:03       17 阅读
  6. setlocal enabledelayedexpansion 详解

    2024-07-21 05:50:03       20 阅读
  7. MySQL中EXPLAIN关键字详解

    2024-07-21 05:50:03       14 阅读
  8. MFC:只允许产生一个应用程序实例的具体实现

    2024-07-21 05:50:03       19 阅读
  9. LeetCode题(66,69,35,88)--《c++》

    2024-07-21 05:50:03       18 阅读
  10. 【极客日常】Golang一个的slice数据替换的bug排查

    2024-07-21 05:50:03       21 阅读
  11. Fabric:Fabric-Gateway-Go的使用方法

    2024-07-21 05:50:03       16 阅读
  12. 机器学习 - 信息增益

    2024-07-21 05:50:03       20 阅读
  13. lua 写一个 不同时区之间转换日期和时间 函数

    2024-07-21 05:50:03       19 阅读