微信小程序开发系列(二十二)·wxml语法·双向数据绑定model:的用法

目录

1.  单向数据绑定

2.  双向数据绑定

3.  代码


        在 WXML 中,普通属性的绑定是单向的,例如:<input value="((value))"/>

        如果希望用户输入数据的同时改变 data 中的数据,可以借助简易双向绑定机制。在对应属性之前添加 model:

        前缀即可:例如 <input model:value="{{value))" />

注意事项:简易双向绑定的属性值如下限制:
1、只能是一个单一字段的绑定,例如:错误用法: <input model:value="值为{{value))"/>
2、尚不能写 data 路径,也就是不支持数组和对象,例如:

        错误用法: <input model:value="{{ a.b }]"/>

        找到cart.js文件,将Page({ })内的内容删除,创建一个数据对象,输入:

  data:{value: 123}

1.  单向数据绑定

        找到cart.wxml文件,将数据对象中的 value 属性的值动态地显示在输入框中。当数据对象中的 value 发生变化时,输入框中显示的内容也会相应地更新。

<input type="text" value="{{ value }}" />

        在框内输入数据,会发现页面数据也会相应发生改变:

        不过当我们在页面输入内容,会发现,最新数据并不能同步给 value 数据:

单项数据绑定:数据能够影响页面,但是页面数据不会影响到数据。

2.  双向数据绑定

        使用了 model:value 来绑定 value 属性的双向数据绑定:

<input type="text" model:value="{{ value }}" /> 

        可以发现此时数据改变能够影响到页面:

        并且页面绑定也能影响到数据:

双向数据绑定:数据能够影响到页面,页面更新也能够影响到数据

如果想实现简易的双向绑定,需要在对应的属性前添加 model:

        对于复选框,首先找到cart.wxml文件,输入代码:

<checkbox model:checked="{{ isChecked }}" /> 是否同意该协议

        找到cart.js文件找到,data文件,给isChecked赋一个初始值:

  data:{value: 123,isChecked:false}

        找到AppData:

        点击上图示复选框,此时数据能够影响页面:

        点击页面复选框,此时页面你能够影像数据:

总结:如果需要获取复选框的选中效果,需要给 checked 添加 model:

注意事项一:属性值只能是一个单一字段的绑定,例如:错误用法: <input model:value="值为{{value))"/>

<input type="text" model:value="值为 {{ value }}" />

        会发现此时更改页面,不会再更改数据: 

注意事项二:尚不能写 data 路径,也就是不支持数组和对象,例如:错误用法: <input model:value="{{ a.b }]"/>

        找到cart.js文件,对data进行修改:

  data:{value: 123,isChecked:false,obj:{value: 123}}

        找到cart.wxml文件:

<input type="text" model:value="{{ obj.value }}" />

        此时对页面输入,会发现数据未同步:

3.  代码

cart.js:


Page({data:{value: 123,isChecked:false,obj:{value: 123}}// // 按钮绑定的事件处理函数// btuHandler(event){//   console.log(event.mark.id)//   console.log(event.mark.name)// },// //view 绑定的事件处理函数// parentHandler(event){//   //先点击蓝色区域//   // 通过事件对象获取的是 view 身上绑定的数据//   // 先点击按钮(不点击蓝色区域)//   console.log(event)// }
})

cart.wxml:


<!-- <view bind:tap="parentHandler" mark:parentid="1" mark:parentname="tom"> --><!-- 如果需要使用 mark 进行事件传参,如果需要使用 mark:自定义属性的方式进行参数传递 --><!-- <button bind:tap="btuHandler" mark:id="1" mark:name="tom">按钮</button> --><!-- <button mark:id="1" mark:name="tom">按钮</button>
</view> --><!-- 单项数据绑定:数据能够影响页面,但是页面数据不会影响到数据 -->
<!-- <input type="text" value="{{ value }}" /> --><!-- 双向数据绑定:数据能够影响到页面,页面更新也能够影响到数据 -->
<!-- 如果想实现简易的双向绑定,需要在对应的属性前添加 model: -->
<!-- <input type="text" model:value="{{ value }}" />  --><!-- <checkbox value=""/> 是否同意该协议 --><!-- <checkbox model:checked="{{ isChecked }}" /> 是否同意该协议 --><!-- <input type="text" model:value="值为 {{ value }}" /> --><input type="text" model:value="{{ obj.value }}" />

        双向数据绑定是一种前端开发中常见的概念,它指的是视图层(如用户界面)和数据层之间的双向关联。当一个地方的数据发生变化时,另一个地方的显示也会随之更新,反之亦然。

        在各种前端框架和库中,双向数据绑定通常是通过特定的语法或者API来实现的。例如,在Vue.js和Angular等框架中,可以使用相应的指令或者语法来实现双向数据绑定;而在React中,双向数据绑定则需要通过其他的方式来实现,比如使用状态管理库或者手动处理数据变化。

        在小程序开发中,双向数据绑定也是一个重要的概念。通过合适的语法和API,可以实现页面元素和数据对象之间的双向关联,使得数据的变化能够自动地反映到页面上,同时用户的输入也能自动地同步到数据对象中。

微信小程序开发_时光の尘的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32day2

1.思维导图 个人暂时的学后感&#xff0c;不一定对&#xff0c;没什么东西&#xff0c;为做项目奔波中。。。1.使用ADC采样光敏电阻数值&#xff0c;如何根据这个数值调节LED灯亮度。 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */adc_val HAL_ADC_GetValue(&a…

开源分子对接程序rDock使用方法(1)-Docking in 3 steps

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、Docking in 3 steps 标准对接rDock 的基本对接步骤及注意事项 二、 三步对接案例Step 1. 结构文件准备Step 2. 产生对接位点Step 3. 运行分子对接3.1 检查输入文件3.2 测试-只进行打分3.3 运行…

【数据结构】二、线性表:6.顺序表和链表的对比不同(从数据结构三要素讨论:逻辑结构、物理结构(存储结构)、数据运算(基本操作))

文章目录 6.对比&#xff1a;顺序表&链表6.1逻辑结构6.2物理结构&#xff08;存储结构&#xff09;6.2.1顺序表6.2.2链表 6.3数据运算&#xff08;基本操作&#xff09;6.3.1初始化6.3.2销毁表6.3.3插入、删除6.3.4查找 6.对比&#xff1a;顺序表&链表 6.1逻辑结构 顺…

【短时交通流量预测】基于小波神经网络WNN

课题名称&#xff1a;基于小波神经网络的短时交通流量预测 版本时间&#xff1a;2023-04-27 代码获取方式&#xff1a;QQ&#xff1a;491052175 或者 私聊博主获取 模型简介&#xff1a; 城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关&#x…

【嵌入式】嵌入式系统稳定性建设:静态代码扫描的稳定性提升术

1. 概述 在嵌入式系统开发过程中&#xff0c;代码的稳定性和可靠性至关重要。静态代码扫描工具作为一种自动化的代码质量检查手段&#xff0c;能够帮助开发者在编译前发现潜在的缺陷和错误&#xff0c;从而增强系统的稳定性。本文将介绍如何在嵌入式C/C开发中使用静态代码扫描…

排序算法——梳理总结

✨冒泡 ✨选择 ✨插入  ✨标准写法  &#x1f3ad;不同写法 ✨希尔排序——标准写法 ✨快排 ✨归并 ✨堆排 ✨冒泡 void Bubble(vector<int>& nums) {// 冒泡排序只能先确定最右边的结果&#xff0c;不能先确定最左边的结果for (int i 0; i < nums.size(); i){…

基于深度学习的交通标志检测识别系统(含UI界面、yolov8、Python代码、数据集)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8 yolov8主要包含以下几种创新&#xff1a;         1. 添加注意力机制&#xff08;SE、CBAM等&#xff09;         2. 修改可变形卷积&#xff08;DySnake-主干c…

linux系统命令深入研究1——ls的参数

ls list命令有一些常用的参数&#xff0c;其中-a意为列出all全部文件&#xff08;包括隐藏文件&#xff09;&#xff0c;-l列出详细信息&#xff0c;-h以人类可阅读的方式列出文件大小 --full-time是列出详细时间信息&#xff0c;包括最后一次修改时间 -t是按时间排序&#xff…

Git 内幕探索:从底层文件系统到历史编辑的全面指南

微信搜索“好朋友乐平”关注公众号。 1. Git 底层文件对象 #mermaid-svg-uTkvyr26fNmajZ3n {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uTkvyr26fNmajZ3n .error-icon{fill:#552222;}#mermaid-svg-uTkvyr26fNmaj…

Spark实战-基于Spark日志清洗与数据统计以及Zeppelin使用

Saprk-日志实战 一、用户行为日志 1.概念 用户每次访问网站时所有的行为日志(访问、浏览、搜索、点击)用户行为轨迹&#xff0c;流量日志2.原因 分析日志&#xff1a;网站页面访问量网站的粘性推荐3.生产渠道 (1)Nginx(2)Ajax4.日志内容 日志数据内容&#xff1a;1.访问的…

【动态规划】完全背包

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;完全背包 &#x1f449;&#x1f3fb;…

政安晨:【深度学习处理实践】(二)—— 最大汇聚运算

最大汇聚运算&#xff08;Max Pooling Operation&#xff09;是深度学习领域卷积神经网络常用的一种汇聚运算方式。在卷积神经网络中&#xff0c;经过一系列卷积层和激活函数层后&#xff0c;数据在空间尺寸上逐渐减小&#xff0c;特征图的深度也逐渐增加。为了降低数据尺寸并提…

微信小程序(五十三)修改用户头像与昵称

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.外界面个人资料基本模块 2.资料修改界面同步问题实现&#xff08;细节挺多&#xff0c;考虑了后期转服务器端的方便之处&#xff09; 源码&#xff1a; app.json {"window": {},"usingCompone…

算法打卡day11|栈与队列篇03|Leetcode 239. 滑动窗口最大值、347.前 K 个高频元素

小顶堆和大顶堆 小顶堆&#xff08;Min Heap&#xff09;和大顶堆&#xff08;Max Heap&#xff09;是两种特殊的完全二叉树&#xff0c;它们遵循特定的堆属性&#xff0c;即父节点的值总是小于或等于&#xff08;小顶堆&#xff09;或者大于或等于&#xff08;大顶堆&#xf…

Latex公式太长换行标号

Latex中公式太长换行&#xff0c;且编号&#xff0c;可以采用align&#xff0c;不编号行公式用\nonumber&#xff0c;示例如下&#xff1a; \begin{align}\nonumber %第1行公式不编号&abababababababa\\&cdm %第2行公式编号 \end{align}效果如下 原文件链接 公式不…

WordPress建站入门教程:如何上传安装WordPress主题?

我们成功搭建WordPress网站后&#xff0c;默认使用的是自带的最新主题&#xff0c;但是这个是国外主题&#xff0c;可能会引用一些国外的资源文件&#xff0c;所以为了让我们的WordPress网站访问速度更快&#xff0c;强烈建议大家使用国产优秀的WordPress主题。 今天boke112百…

【MySQL 系列】MySQL 架构篇

在我们开始了解 MySQL 核心功能之前&#xff0c;首先我们需要站在一个全局的视角&#xff0c;来看 SQL 是如何运作执行的。通过这种方式&#xff0c;我们可以在头脑中构建出一幅 MySQL 各组件之间的协同工作方式&#xff0c;有助于我们加深对 MySQL 服务器的理解。 文章目录 1、…

深入浅出运维可观测工具(四):如何使用eBPF绘制网络拓扑图

哈喽~又到了我们技术分享环节了。eBPF这个系列自分享以来收到了很多朋友的喜欢&#xff0c;真是让博主又惊又喜&#xff0c;感谢大家的支持。话不多说&#xff0c;今天我们将对如何使用eBPF绘制网络拓扑图做一篇分享&#xff0c;文章较长&#xff0c;干货较多&#xff0c;大家可…

R语言lavaan结构方程模型在复杂网络分析中的科研技术新趋势

此外&#xff0c;我们还将深入探讨R语言的基础知识、结构方程模型的基本原理、lavaan程序包的使用方法等内容。无论是潜变量分析、复合变量分析&#xff0c;还是非线性/非正态/缺失数据处理、分类变量分析、分组数据处理等复杂问题&#xff0c;我们都将一一为您解析。 希望通过…

微服务获取登录用户Id与单体服务下获取用户Id对比(黑马头条Day03)

前置声明 当前前后端分离开发项目中&#xff0c;后端某个请求向具体某个数据库中的多个表插入数据时&#xff0c;经常需要使用到当前登录用户的Id&#xff08;唯一标识&#xff09;。在当前用户线程下以实现变量共享&#xff0c;同时为了避免不同用户线程之间操作变量的影响&am…