小程序input数据双向绑定实现方法


Posted in Javascript onOctober 17, 2019

我们都知道 vue 中可以使用 modal 来实现 input 内容数据的双向绑定。

小程序好像没有提供相应的方法支持,就需要我们自己写了。

原理

很简单,在 input 上先绑定需要取值的变量,如这个变量名是 name,然后再定义一个用于指向变量名的属性 data-modal 这个属性值设置为 name,在 input 的绑定方法中将这个属性值取出,就会知道这个 input 绑定了哪个变量,然后再将 input 的当前值赋给这个变量即可。

实现

wxml

<input id='name' 
  name="name"
  type='text' 
  value='{{name}}' <!-- input 从 js 中的 data.name 取值 -->
  data-modal='name' <!-- 这里通过 data-xx 的形式传递一个需要绑定的变量名,之后可以通过 event.dataset.xxx 轻松取到 -->
  bindinput='handleInputChange' <!-- 这里绑定 input 内容变化时的处理方法 -->
  >
</input>

wxs

Page({
 data: {
  name: String
 },
 handleInputChange: function(e){
   // 取出定义的变量名
  let targetData = e.currentTarget.dataset.modal; 

  // 取出定义的变量名
  let currentValue = e.detail.value; 
  
  // 将 input 值赋值给 定义的变量名,this.name 可以直接取到在 data 中定义的 name 值,其效果跟 this[变量名] 是对等的,这是 js 基础
  this[targetData] = currentValue; 
  
 }
}

效果如下图:

小程序input数据双向绑定实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS动态创建Table,Tr,Td并赋值的具体实现
Jul 05 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
Aug 04 Javascript
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
webpack4.0打包优化策略整理小结
Mar 30 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
Jul 01 Javascript
Nautil 中使用双向数据绑定的实现
Oct 02 Javascript
Jquery异步上传文件代码实例
Nov 13 jQuery
vue-router结合vuex实现用户权限控制功能
Nov 14 Javascript
JavaScript中的this妙用实例分析
May 09 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 Javascript
OpenLayers3实现对地图的基本操作
Sep 28 Javascript
jquery实现点击左右按钮切换图片
Jan 27 jQuery
mpvue实现小程序签到金币掉落动画(api实现)
Oct 17 #Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 #Javascript
JavaScript 实现同时选取多个时间段的方法
Oct 17 #Javascript
Layui事件监听的实现(表单和数据表格)
Oct 17 #Javascript
浅谈Vue.set实际上是什么
Oct 17 #Javascript
Vuex modules模式下mapState/mapMutations的操作实例
Oct 17 #Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 #Javascript
You might like
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
js操作二级联动实现代码
2010/07/27 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
Python中的jquery PyQuery库使用小结
2014/05/13 Python
python3编写C/S网络程序实例教程
2014/08/25 Python
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
python解决字符串倒序输出的问题
2018/06/25 Python
python 寻找离散序列极值点的方法
2019/07/10 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
python 贪心算法的实现
2020/09/18 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
远程培训的心得体会
2014/09/01 职场文书
党课培训心得体会
2014/09/02 职场文书
实习班主任自我评价
2015/03/11 职场文书
院系推荐意见
2015/06/05 职场文书
创业计划书之花店
2019/09/20 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
电频谱管理的原则是什么
2022/02/18 无线电