小程序采坑系列-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 我们在购买宝贝的时候,购物的数量,经常是我们需要使用的,如下所示: ...
 
随机推荐
- jQuery 常用操作(转)
			
一.书写规则 支持链式操作: 在变量前加"$"符号(var $variable = jQuery 对象): 注:此规定并不是强制要求. 二.寻找元素 选择器 基本选择器 层级选择器 ...
 - Win10开启“上帝模式”
			
win10的上帝模式就是win10的全部功能展示模式,因为功能太强大,所以被戏称为"上帝模式".要开启win10的上帝模式,需要按下面的步骤来操作:1.在window桌面新建一个普 ...
 - Spring源码情操陶冶-AOP之Advice通知类解析与使用
			
阅读本文请先稍微浏览下上篇文章Spring源码情操陶冶-AOP之ConfigBeanDefinitionParser解析器,本文则对aop模式的通知类作简单的分析 入口 根据前文讲解,我们知道通知类的 ...
 - Junit基本使用
			
Junit基本用法 1.创建Junit Test Case 2.基本使用(以oracle数据库操作为例) package com.csit.adminsystem1.tests; import sta ...
 - MongoDB自动增长
			
MongoDB 没有像SQL一样有自动增长的功能,如果我们需要实现ObjectId自动增长功能,可以通过编程的方式来实现.步骤如下: 1. 创建counters集合: db.createCollect ...
 - 在webapi中为Action使用dynamic参数实现Post方式调用
			
1.在webapi中使用controller/action/id的路径配置,打开文件[App_Start] -[WebApiConfig] config.Routes.MapHttpRoute( na ...
 - 深度学习系列 Part(3)
			
这是<GPU学习深度学习>系列文章的第三篇,主要是接着上一讲提到的如何自己构建深度神经网络框架中的功能模块,进一步详细介绍 Tensorflow 中 Keras 工具包提供的几种深度神经网 ...
 - CodeForces - 556A  Case of the Zeros and Ones
			
//////////////////////////////////////////////////////////////////////////////////////////////////// ...
 - poj 2720 Last Digits
			
Last Digits Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2233 Accepted: 474 Descri ...
 - 暑假练习赛 007 B - Weird Cryptography
			
Weird Cryptography Description standard input/outputStatements Khaled was sitting in the garden unde ...