小程序采坑系列-this.setData
今天踩了大坑,坑里还都是碎瓶渣子。。
- 先说一下基本使用。官网也有。比如说你在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.微信小程序如何让text内容空格 <text decode="{{true}}" space="{{true}}"> </text> ... 
- 使用wepy框架搭建微信小程序采坑记(一)
		1.什么是wepy 这个框架是腾讯内部出的一个类MVVM的小程序开发框架.大体上来说语法是类VUE的,所以如果有VUE开发经验的话迁移成本会低一些.至于具体的怎么使用我就不赘言了,有问题查文档(官方文 ... 
- 微信小程序采坑
		wx.request() complete回调函数执行时机问题 代码执行顺序有时候会严重影响用户体验:比如项目中请求数据时显示loading的图标,请求完成后不管失败还是成功都要把loading图标隐 ... 
- 微信小程序采坑之上拉触底加载更多和下拉刷新
		小程序中加载更多数据一般都是触底刷新 有自带的函数: onReachBottom: function (){} 但是在使用时触发完全没有反应,后来尝试给外层加了一个高度,解决问题 仔细想想也是,没有设 ... 
- 小程序采坑之setData
		根据双向绑定当我setData的时候input的值应该改变,但是并没有.而且this.data中的值也没有改变 <input class="weui-input" bindi ... 
- 微信小程序采坑之scroll-view
		当设置了scroll-y为true之后,纵向是没有问题的,会出现滚动条. Android上一切都是那么的祥和, ios上你会发现如果你scroll-view里面的东西超过横向的宽度时,就会隐藏了. 也 ... 
- 微信小程序踩坑集合
		1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ... 
- [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)
		本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类 —— 微信小程序实战商城 ... 
- [转]微信小程序之购物数量加减 —— 微信小程序实战商城系列(3)
		本文转自:http://blog.csdn.net/michael_ouyang/article/details/70194144 我们在购买宝贝的时候,购物的数量,经常是我们需要使用的,如下所示: ... 
随机推荐
- gnome 3 美化
			首先,去http://gnome-look.org/找到需要的主题,然后手动安装或者用下载到的主题包里的脚本安装 手动安装对应路径如下: 鼠标,图标主题解压放置:~/.icons或/usr/share ... 
- time函数获取时间与本地时间不一致
			修改php.ini,将“date.timezone”项修改为“date.timezone = PRC”. 大陆内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/U ... 
- 微软Tech Summit 2017,等你来打Call
			2017年10月31至11月3日,由微软举办的Tech Summit 2017技术暨生态大会将在北京盛大举办,要在北京连开四天.今年的技术大会看头十足,不仅有大咖级人物带来十二大主题课程,更有三天四场 ... 
- Python学习之一:Python2.7与opencv2.4安装配置
			安装前准备: 1.确定所安装的电脑是32位还是64位系统:(作者电脑是64bit win10) 2.下载对应的安装包: (1)下载最新Python安装包:https://www.python.org/ ... 
- Android 开发笔记___登陆app
			package com.example.alimjan.hello_world; /** * Created by alimjan on 7/4/2017. */ import android.con ... 
- [译]ASP.NET Core 2.0 区域
			问题 如何将一个规模庞大的ASP.NET Core 2.0应用程序进行逻辑分组? 答案 新建一个ASP.NET Core 2.0空项目,修改Startup类,增加Mvc服务和中间件: public v ... 
- JavaScript系列-----Object之toString()和valueOf()方法 (2)
			深入理解toString()和valueOf()函数 1.我们为什么要了解这两种方法 众所周知,toString()函数和valueOf函数,这两个函数是Object类的对象生来就拥有的,而且他们还可 ... 
- Linux 文件系统模型
			声明:本文仅限于 cnblogs 发布,其他第三方网站均为盗版,原文地址:Linux 文件系统模型 在 Linux 环境下有过一些经历的同学可能都会遇到一个问题,这个问题就是往机器上插入 U盘 或者其 ... 
- 免费好用的阿里云云盾证书服务(https证书)申请步骤
			推荐一个免费的阿里云产品:云盾证书(https证书) 为了能让非专业人士看懂,同样尽量用直白的话,一般来说:当你个人需要建立网站,或者公司要建立官网.商城,通常需要先购买服务器或云主机,虚拟空间,然后 ... 
- c#鼠标点击TextBox控件后清空默认字体
			方案(一) 脚本: <script type="text/javascript" language="javascript"> //得 ... 
