今天踩了大坑,坑里还都是碎瓶渣子。。

  1. 先说一下基本使用。官网也有。

    比如说你在main.js里面有这些变量。想修改某些值。
    data: {
    main_view_bgcolor: "",
    border: "",
    }
    修改方式有两种,一是直接用“=”赋值,这种是可以修改,并且你把修改之后的值打印出来可以看到确实修改了,但是不推荐使用这样的方式。
    因为,一般我们想修改data里面的值,往往都是因为这些数据都在main.wxml中绑定了,可以实现动态修改并实时刷新显示。刚刚这种方式容易发生数据被修改但是页面没有变化。
    所以说一下下面这种方式:
    在你绑定的自定义函数(往往都是绑定的点击事件)里面,
    this.setData({
    border:"aa"//这个border跟上面data里面的border是对应的。
    })

    这种方式,点击之后触发事件,执行函数,更新数据,同时可以实时更新渲染界面。

    2、高能高能,这个就是那个都是瓶渣子的坑(哭状)

      data: {
    main_view_bgcolor: "",
    border: "",
    isChecked: [true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]
    }

    如上,如果我想动态修改isChecked里面指定某个下标的值怎么办?

    首先我先喷一句,这是百度知道网友给的回答。https://zhidao.baidu.com/question/1434931285716531579.html

    你TM就不能把代码多粘贴一点?会死啊?鬼知道你写的什么意思。

    好了(故作正经),下面我来说怎么动态修改一个对象的某元素的值。上面这个是索引下标,等会还有个key-value的例子。

    代码:

    click: function (e) {
    var id = e.target.id//根据点击不同的view获取对应的id值
    var str = "isChecked[" + id + "]"//重点在这里,组合出一个字符串
    this.setData({
    [str]: false//用中括号把str括起来即可
    })
    }

    看注释。点击->触发对应事件->来到click函数这里,根据点击的view获取对应的id,修改指定下标的isChecked。

    上面这个isChecked的索引是从0到n的,即可以通过isChecked[0]、isChecked[1]来访问。可以在操作的过程中打印日志看一下数据类型。

    哦,对了,在wxml中如果要绑定isChecked中元素的值,可以这么:

    <view class="{{isChecked[2]?'main_view':'main_view_clicked'}}" bindtap='click' bindlongpress='cancelclick' id='2' bindtap='click'></view>
    不要在意那个三目运算,反正类似于js中访问方式,也是isChecked[index]。同理,下面的key-value类型的就可以通过isChecked[index].key来绑定数据了。

    下面是key-value类型的:

    data: {
    main_view_bgcolor: "",
    border: "",
    isChecked: [
    {
    key: true
    },
    {
    key: true
    },
    {
    key: true
    }
    ]
    }

    直接写操作方式了(因为就跟上面只有一点点的区别):

    var str = "isChecked[" + id + "].key" this.setData({ [str]: false })

    欢迎关注微信公众号“ **IT客**“ ,投稿邮箱 itkeyy@163.com

    
    

小程序采坑系列-this.setData的更多相关文章

  1. 微信小程序采坑(一)

    1.微信小程序如何让text内容空格 <text decode="{{true}}" space="{{true}}">  </text> ...

  2. 使用wepy框架搭建微信小程序采坑记(一)

    1.什么是wepy 这个框架是腾讯内部出的一个类MVVM的小程序开发框架.大体上来说语法是类VUE的,所以如果有VUE开发经验的话迁移成本会低一些.至于具体的怎么使用我就不赘言了,有问题查文档(官方文 ...

  3. 微信小程序采坑

    wx.request() complete回调函数执行时机问题 代码执行顺序有时候会严重影响用户体验:比如项目中请求数据时显示loading的图标,请求完成后不管失败还是成功都要把loading图标隐 ...

  4. 微信小程序采坑之上拉触底加载更多和下拉刷新

    小程序中加载更多数据一般都是触底刷新 有自带的函数: onReachBottom: function (){} 但是在使用时触发完全没有反应,后来尝试给外层加了一个高度,解决问题 仔细想想也是,没有设 ...

  5. 小程序采坑之setData

    根据双向绑定当我setData的时候input的值应该改变,但是并没有.而且this.data中的值也没有改变 <input class="weui-input" bindi ...

  6. 微信小程序采坑之scroll-view

    当设置了scroll-y为true之后,纵向是没有问题的,会出现滚动条. Android上一切都是那么的祥和, ios上你会发现如果你scroll-view里面的东西超过横向的宽度时,就会隐藏了. 也 ...

  7. 微信小程序踩坑集合

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...

  8. [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类  —— 微信小程序实战商城 ...

  9. [转]微信小程序之购物数量加减 —— 微信小程序实战商城系列(3)

    本文转自:http://blog.csdn.net/michael_ouyang/article/details/70194144 我们在购买宝贝的时候,购物的数量,经常是我们需要使用的,如下所示: ...

随机推荐

  1. echarts教程-asp.net+ashx实现堆积柱状

    说说看.崔西莲夫人紧接着说. 想不到史春吉是这种人. 你会这样说倒是有趣,因为这正是我当时的感觉.这跟奈维尔的个性不合.奈维尔,就像大部分男人一样,通常都是尽量避开任何可能造成尴尬或不愉快的场面.我怀 ...

  2. js页面事件方法

    1. 监听页面加载事件: window.onload = function (){ alert('页面加载成功'); } 2.监听页面大小改变事件: window.onresize = functio ...

  3. cmd 编译java WebService

    格式:wsimport -s "src目录" -p "生成类所在包名" -keep "wsdl发布地址" 示例: wsimport -s G ...

  4. Vue.js之render函数基础

    刚才翻了一下博客,才发现,距离自己写的第一篇Vue的博客vue.js之绑定class和style(2016-10-30)已经过去一年零两天.这一年里,自己从船厂的普通技术员,成为了一个微型不靠谱创业公 ...

  5. B. An express train to reveries

    B. An express train to reveries time limit per test 1 second memory limit per test 256 megabytes inp ...

  6. Game of Connections

    Game of Connections Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...

  7. 使用javascript编写根据用户鼠标控制背景图片的移动

    在一家VR公司做前端. 起初进入前端就是一种内心的直觉,创造更好的用户体验,让页面更加友好,当然最起初接手web项目还是为了完成毕业设计. 一个网上图书商城,虽然不大,但五脏都有毕竟开刀所以避免不了很 ...

  8. Android 开发笔记___Activity的生命周期

    一个activity就是一个页面,入口函数是oncreate(). onCreate:创建页面,把页面上各个元素加载到内存 onStart:开始页面,把页面显示在屏幕 onResume:恢复页面,让页 ...

  9. DOM遍历 - 后代

    jQuery children() 方法 children() 方法返回被选元素的所有直接子元素. 该方法只会向下一级对 DOM 树进行遍历. 您也可以使用可选参数来过滤对子元素的搜索. 下面的例子返 ...

  10. linux使用yum的方式安装mysql实践

    1.先检测是否已安装mysql ps -ef|grep mysql root : pts/ :: /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mys ...