小程序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脚本学习 比较实用的基础
Sep 07 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
JS实现简单路由器功能的方法
May 27 Javascript
JavaScript文本框脚本编写的注意事项
Jan 25 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
Mar 12 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
Jul 16 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
element中Steps步骤条和Tabs标签页关联的解决
Dec 08 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
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
各种快递查询--Api接口
2016/04/26 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
Python编程中装饰器的使用示例解析
2016/06/20 Python
python中字符串的操作方法大全
2018/06/03 Python
python使用PyQt5的简单方法
2019/02/27 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
详细分析Python垃圾回收机制
2020/07/01 Python
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
学生会竞选自荐信
2013/10/12 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
伏羲庙导游词
2015/02/09 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
爱心募捐通知范文
2015/04/27 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫