小程序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 相关文章推荐
为jQuery.Treeview添加右键菜单的实现代码
Oct 22 Javascript
javascript 进阶篇2 CSS XML学习
Mar 14 Javascript
jQuery滚动加载图片效果的实现
Mar 06 Javascript
深入分析JQuery和JavaScript的异同
Oct 23 Javascript
JavaScript数据结构与算法之栈详解
Mar 12 Javascript
基于BootStrap的图片轮播效果展示实例代码
May 23 Javascript
Bootstrap轮播插件使用代码
Oct 11 Javascript
js控制台输出的方法(详解)
Nov 26 Javascript
Vue项目组件化工程开发实践方案
Jan 09 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
May 22 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
Nov 14 Javascript
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 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
瀑布流布局代码一例
2014/04/11 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
给before和after伪元素设置js效果的方法
2015/12/04 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
Vue 使用beforeEach实现登录状态检查功能
2019/10/31 Javascript
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
eclipse创建python项目步骤详解
2019/05/10 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
《走一步再走一步》教学反思
2014/02/15 职场文书
节能减排倡议书
2014/04/15 职场文书
综艺节目策划方案
2014/06/13 职场文书
公司应聘自荐书
2014/06/14 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
交通处罚决定书
2015/06/24 职场文书
详细总结Python常见的安全问题
2021/05/21 Python
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript