返回顶部
首页 > 资讯 > 移动开发 >微信小程序this.setData给对象&数组动态赋值
  • 663
分享到

微信小程序this.setData给对象&数组动态赋值

微信小程序小程序 2023-09-10 08:09:07 663人浏览 安东尼
摘要

固定属性赋值 wxml: {{fORMData.title}}  js: data:{ formData:{ title:'hellow' }} 这个时候页面上显示的是 hellow 当我们修改的时候有2种方案

固定属性赋值

wxml:

{{fORMData.title}}

 js:

data:{    formData:{        title:'hellow'    }}

这个时候页面上显示的是 hellow

当我们修改的时候有2种方案

// 方案一 整体赋值this.data.formData.title = 'china';this.setData({    form:'china'})// 方案二 单个属性赋值this.setData({   'form.title':'china'})或this.setData({   ['form.title']:'china'})

动态属性赋值

wxml:

{{item.title}}

js:

data:{    arr:[        {            id:1,            title:'标题一'        },        {            id:2,            title:'标题二'        }    ]}

修改数组里对象的属性

let index = 0;this.setData({    `[arr[${index}].title]`:'china'})或let name = this.data.arr[0].title;this.setData({    [name]:'china'})

通过es6模版字符串 `` 的方式 key 可以作为变量

wxml:

{{formData.a0}}{{formData.a1}}{{formData.a2}}

 js:

data:{    formData:{        a0:'111',        a1:'222',        a2:'333'    }}

循环修改

for(let i=0 ; i<2 ; i++){    let name = `a${i}`;    this.setData({        [name]:'c'+i    })}//显示结果a0:c0a1:c1a2:c2

双向数据绑定

经过多次尝试提交 获取到的formData.title数据为空,据说加上model:value会生效,然而并没有任何效果,甚至一度怀疑人生,直到找到一篇帖子说 2.9.3以上版本才支持

wx.getSystemInfo({   success: function (res) {        console.log('该版本号为: ',res.SDKVersion)   }})

// 输出结果 该版本号为:  2.19.4

很显然不支持

网上搜索了一番,微信小程序居然没有双向数据绑定,如果想要动态改变 data 值需要用到 bindinput 方法拿到输入的值,再赋值给data,看到这里有点无语,既然找到了方法就写吧。

考虑到一个页面上可能存在多个input总不能每个都加一个bindinput方法吧,这样太鸡肋的,有没有办法写一个通用的。

wxml:

js:

data:{    formData:{        title:'',        phone:'',        address:''    }}

这样就可以用data-属性获取我当前需要修改的key,再结合上面动态变量

handleInput(e){    let valueName = e.target.dataset.name;    let name = `formData.${valueName}`;    this.setData({      [name]:e.detail.value    })  },

至此大功告成,虽然代码量没多少,如果不知道的话要花好多时间在这个上面。感谢前辈们的帖子,这里只描述了部分方法,还有很多更高级的用法,地址贴在下方。

参考网址:

https://blog.csdn.net/wuguidian1114/article/details/103293615

https://blog.csdn.net/weixin_47617631/article/details/126312443

https://blog.csdn.net/weixin_64397810/article/details/124218309

http://t.zoukankan.com/sgqwjr-p-9130744.html

https://blog.csdn.net/weixin_44151130/article/details/124649372

来源地址:https://blog.csdn.net/m0_61087678/article/details/128261059

--结束END--

本文标题: 微信小程序this.setData给对象&数组动态赋值

本文链接: https://lsjlt.com/news/402102.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序this.setData给对象&数组动态赋值
    固定属性赋值 wxml: {{formData.title}}  js: data:{ formData:{ title:'hellow' }} 这个时候页面上显示的是 hellow 当我们修改的时候有2种方案 ...
    99+
    2023-09-10
    微信小程序 小程序
  • 怎么在微信小程序中对数组赋值
    在微信小程序中对数组进行赋值的方法:1.全部赋值;2.部分赋值;具体方法如下:全部赋值data: {listData:[1,2,3,4,5,6,7,8,9],listData2:[],},//将listData全部赋值给listData2t...
    99+
    2024-04-02
  • vue $set 实现给数组集合对象赋值
    vue $set 数组集合对象赋值 在vue自定义数组对象集合中,想要给每个数组对对象再添加一个属性和值。 // data定义一个集合对象 responseData:[ ...
    99+
    2024-04-02
  • 微信小程序数组对象的添加及删除(Vue2)
    一、添加 数组添加元素的两个方法(都不去重) 1、数组.push(对象) 直接向数组末尾追加新的元素(不会去重) //this.productTemporary=[]this.productTemporary.push(e); ...
    99+
    2023-08-17
    微信小程序 小程序
  • vue如何给数组添加新对象并赋值
    目录给数组添加新对象并赋值方法一方法二数组赋值踩过的坑及解决给数组添加新对象并赋值 方法一 适用于数组就只有一组 listData: [{name:"张三",age:18}], //...
    99+
    2024-04-02
  • vue怎么给数组添加新对象并赋值
    这篇文章主要介绍了vue怎么给数组添加新对象并赋值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么给数组添加新对象并赋值文章都会有所收获,下面我们一起来看看吧。给数组添加新对象并赋值方法一适用于数组就只...
    99+
    2023-06-30
  • vue中$set怎么给数组集合对象赋值
    这篇文章主要讲解了“vue中$set怎么给数组集合对象赋值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中$set怎么给数组集合对象赋值”吧!vue $set 数组集合对象赋值在vue...
    99+
    2023-07-04
  • vue $set如何实现给数组集合对象赋值
    本篇内容主要讲解“vue $set如何实现给数组集合对象赋值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue $set如何实现给数组集合对象赋值”吧!vue $set 数组集合对象赋值在vu...
    99+
    2023-06-20
  • 小程序实现页面给自定义组件赋值
    本文实例为大家分享了小程序之页面给自定义组件赋值的具体代码,供大家参考,具体内容如下 1.新建组件:在component下新建一个tabBar 2.组件中的index.wxml结构...
    99+
    2024-04-02
  • 微信小程序动态如何加载数据
    小编给大家分享一下微信小程序动态如何加载数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!微信小程序刚出来有很多的东西还在更新,...
    99+
    2024-04-02
  • 微信小程序页面间传递数组对象的示例分析
    这篇文章主要介绍了微信小程序页面间传递数组对象的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法1:A页面跳转链接添加参数,B页面...
    99+
    2024-04-02
  • 怎么用vue的$set实现给数组集合对象赋值
    这篇“怎么用vue的$set实现给数组集合对象赋值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • 微信小程序动态页面是什么
    微信小程序动态网页是指一种网页编程技术,动态页面的代码虽然没有变,但可随着时间、环境或者数据库操作等不同的结果而改变显示的内容,例如网站上的广告轮播图,代码不变,图片会自动变化。...
    99+
    2024-04-02
  • 微信小程序实现动态验证码
    目录一、创建自定义组件verification-code二、在index页面使用本文实例为大家分享了微信小程序实现动态验证码的具体代码,供大家参考,具体内容如下 一、创建自定义组件...
    99+
    2024-04-02
  • 微信小程序如何使用setData修改数组中的单个对象
    这篇“微信小程序如何使用setData修改数组中的单个对象 ”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“微信小程序如何使用...
    99+
    2023-06-26
  • 微信小程序生成带动态参数二维码
    首先说一下我的使用场景,用户可根据id生成这一条记录的二维码,其他人扫码直接跳转到小程序,显示这条记录的具体信息。 分两步:第一在微信公众号后台配置,第二利用canvas前端实现二维码展示,并接收参数做下一步处理。 第一步:后台配置 登录微...
    99+
    2023-08-17
    微信小程序 小程序
  • 微信小程序如何实现动态传参
    这篇文章将为大家详细讲解有关微信小程序如何实现动态传参,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。微信小程序 动态传参实例详解在微信小程序的开发过程中经常会用到动态传参...
    99+
    2024-04-02
  • 微信小程序怎么动态更新页面
    微信小程序动态更新页面的案例:wxml代码: <swiper indicator-dots="{{true}}"  current="{{currentindex}...
    99+
    2024-04-02
  • 怎么开发微信小程序动态页面
    开发微信小程序动态页面的示例:在wxml文件中添加以下代码。<swiper indicator-dots="{{true}}"  current="{{currentinde...
    99+
    2024-04-02
  • 微信小程序中怎么实现组件传值
    今天就跟大家聊聊有关微信小程序中怎么实现组件传值,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。父传子<!-- 父组件A w...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作