小程序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 相关文章推荐
Extjs TimeField 显示正常时间格式的代码
Jun 28 Javascript
一个不错的js html页面倒计时可精确到秒
Oct 22 Javascript
超级给力的JavaScript的React框架入门教程
Jul 02 Javascript
最新最热最实用的15个jQuery插件汇总
Jul 05 Javascript
js脚本分页代码分享(7种样式)
Aug 19 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
Express + Session 实现登录验证功能
Sep 08 Javascript
原生JS实现 MUI导航栏透明渐变效果
Nov 07 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
Mar 28 Javascript
vue路由守卫+登录态管理实例分析
May 21 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
Dec 09 Javascript
js正则表达式简单校验方法
Jan 03 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
php常用文件操作函数汇总
2014/11/22 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
JS实现table表格固定表头且表头随横向滚动而滚动
2017/10/26 Javascript
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
2018/02/10 Javascript
AjaxUpLoad.js实现文件上传功能
2018/03/02 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
目前最全的python的就业方向
2018/06/05 Python
django项目搭建与Session使用详解
2018/10/10 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
Python数据类型之List列表实例详解
2019/05/08 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
python归并排序算法过程实例讲解
2020/11/04 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
英国网上超市:Ocado
2020/03/05 全球购物
药学专业大学生个人的自我评价
2013/11/04 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
保护地球的宣传语
2015/07/13 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书