小程序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 相关文章推荐
刷新页面实现方式总结(HTML,ASP,JS)
Nov 13 Javascript
JavaScript中Object和Function的关系小结
Sep 26 Javascript
淘宝搜索框效果实现分析
Mar 05 Javascript
JS鼠标事件大全 推荐收藏
Nov 01 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
Apr 15 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
jQuery Validate初步体验(一)
Dec 12 Javascript
js和C# 时间日期格式转换的简单实例
May 28 Javascript
小程序自定义日历效果
Dec 29 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
Openlayers3实现车辆轨迹回放功能
Sep 29 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网站判断用户是否是手机访问的方法
2013/11/01 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
JavaScript 创建对象
2009/07/17 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
JavaScript 闭包的使用场景
2020/09/17 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
神经网络python源码分享
2017/12/15 Python
django-初始配置(纯手写)详解
2019/07/30 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
python烟花效果的代码实例
2020/02/25 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
Python txt文件如何转换成字典
2020/11/03 Python
Canvas 文本填充线性渐变的使用详解
2020/06/22 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
新浪网技术部笔试题
2016/08/26 面试题
水产养殖学应届生求职信
2013/09/29 职场文书
小学生家长评语大全
2014/02/10 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
详解pytorch创建tensor函数
2022/03/22 Python
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技