小程序input数据双向绑定实现方法
我们都知道 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; } }
效果如下图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
微信小程序之数据双向绑定与数据操作
微信小程序之数据双向绑定与数据操作 数据双向绑定是指js部分数据发生变化是html部分的数据也会发生变化,当然html部分数据发生变化js部分数据也会发生变化,从而使界面很方便的实现动态数据显示,一般拥有数据双向绑定的前端框架都为mvvm结构.数据双向绑定是个好东西,an1 an2 vue 也都有数据双向绑定的机制,而且基本都差不多,抄来抄去嘛!!下面以一个列表为例子来说下数据双向绑定及数据的操作. 1.把要进行数据双向绑定的属性放在page的data里,然后在html里使用{{属性名}}即
-
小程序input数据双向绑定实现方法
我们都知道 vue 中可以使用 modal 来实现 input 内容数据的双向绑定. 小程序好像没有提供相应的方法支持,就需要我们自己写了. 原理 很简单,在 input 上先绑定需要取值的变量,如这个变量名是 name,然后再定义一个用于指向变量名的属性 data-modal 这个属性值设置为 name,在 input 的绑定方法中将这个属性值取出,就会知道这个 input 绑定了哪个变量,然后再将 input 的当前值赋给这个变量即可. 实现 wxml <input id='name' na
-
js实现视图和数据双向绑定的方法分析
本文实例讲述了js实现视图和数据双向绑定的方法.分享给大家供大家参考,具体如下: 前言 视图和数据绑定,使视图和逻辑层分离,使视图层变为数据驱动是前端的一大进步.由此诞生了mvvm类的前端框架,大大提升了开发的效率. 那么在使用旧有的项目中,如何使用更加先进的设计模式来替换掉大量的面向过程编程. 各大框架对于数据绑定的实现都有各自的方式,这里不做深入只是简单介绍一下. Vue使用了es5 Object.defineProperty的特性来实现对数据读取和设置的监听,是一种元编程的方式.个人感觉
-
Flask中获取小程序Request数据的两种方法
Flask中获取小程序Request数据的两种方法 作为后端屌对于前端确实讳莫如深,JS中的类型Object竟然不能直接通过POST传入到后台Flask中,您会发现获取的是[object Object],这货在Flask中只是个Str,哈哈... 于是,开始寻求解决方案: 方案一,通过GET或者POST传参,将Object转换为Str请求数据: 1.在util.js中定义一个JS函数: function json2Form(json) { var str = []; for (var p in
-
微信小程序input抖动问题的修复方法
发现问题 先看问题,小程序中,使用 Vant 的 Dialog 组件 + 小程序元素 input 组件,在弹出的时候 placeholder 文字会抖动一下,即初始位置偏上,再抖动到正确的位置上. 有问题的录屏: 经过尝试,修复问题: 我是这样修复的: .dialog-input, .dialog-input-placeholder { height: 80rpx !important; display: flex; align-items: center; } 以上献给也遇到同样坑的朋友,以及
-
Vue数据双向绑定原理及简单实现方法
Vue这个框架就不简单介绍了,它最大的特性就是数据的双向绑定以及虚拟dom.核心就是用数据来驱动视图层的改变.先看一段代码. 一.示例 var vm = new Vue({ data: { obj: { a: 1 } }, created: function () { console.log(this.obj); } }); 二.实现原理 vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的. 1)数据劫持.vue是通过Object.defineProperty()来实现数据劫持
-
解决vue项目input输入框双向绑定数据不实时生效问题
我就废话不多说了,大家还是直接看代码吧~ <input type="text" maxlength="11" placeholder="请输入联系人电话" v-model="form.phone" /> 这样的输入框,绑定的是data中的form对象上的phone字段. 在mounted钩子函数里边写: this.form.phone = '1888888888'; 这样在页面上时候不会随着输入框值改变而改变. 解
-
一文带你了解微信小程序数据绑定、事件绑定以及事件传参、数据同步
目录 数据绑定 基本原则 在data中定义数据 Mustache语法 Mustache语法的应用 绑定内容 绑定属性 运算(三元运算.算术运算等) 事件绑定 什么是事件? 常用事件 事件对象属性 target与currentTarget的区别 bindtap语法格式 在事件处理函数中为data赋值 事件传参 查看参数 bindinput语法格式 实现文本框与data之间的数据同步 总结 数据绑定 基本原则 在data中定义数据 在WXML中使用数据 在data中定义数据 在页面对应的.js 文件
-
vue 数据双向绑定的实现方法
1. 前言 本文适合于学习Vue源码的初级学者,阅读后,你将对Vue的数据双向绑定原理有一个大致的了解,认识Observer.Compile.Wathcer三大角色(如下图所示)以及它们所发挥的功能. 本文将一步步带你实现简易版的数据双向绑定,每一步都会详细分析这一步要解决的问题以及代码为何如此写,因此,在阅读完本文后,希望你能自己动手实现一个简易版数据双向绑定. 2. 代码实现 2.1 目的分析 本文要实现的效果如下图所示: 本文用到的HTML和JS主体代码如下: <div id="ap
-
微信小程序首页数据初始化失败的解决方法
一. 问题描述 用户首次后再次进入小程序时,我们通常需要通过获取用户openid或unionid用作唯一标示与后台进行数据交流,初始化用户信息.当我们通过第三方服务器跟微信建立请求时,微信需要用户确认是否公开信息.如图1,从console可以看到,在请求的同时,我们的首页index已经加载完成,图中初始化数据显示为空.无论我们将请求信息写在app.js的onload中或者index.js中,当我们点击确认后,请求信息才执行success方法,将第三方服务器返回的数据处理,这样的因需要用户点击而产
随机推荐
- 批处理制作二维码生成器
- 浅谈java中的一维数组、二维数组、三维数组、多维数组
- JavaScript中的迭代器和生成器详解
- asp.net 组件开发中的内嵌资源引用
- Laravel实现定时任务的示例代码
- Python深入学习之对象的属性
- asp下的一个很简单的验证码程序第1/3页
- 深入学习C++中的函数概念
- mysql获取group by的总记录行数另类方法
- Docker 中的容器完全解析
- WMI入门教程之什么是WMI?
- jQuery通过扩展实现抖动效果的方法
- 解析C++中指向对象的指针使用
- java swing编程入门代码编写(java编程入门)
- Java中对象与C++中对象的放置安排的对比
- 使用xmltextreader对象读取xml文档示例
- Java实现的双向匹配分词算法示例
- Python内置模块logging用法实例分析
- python中 * 的用法详解
- Spring Boot接口设计防篡改、防重放攻击详解