微信小程序 教程之数据绑定


Posted in Javascript onOctober 18, 2016

系列文章:

数据绑定

WXML中的动态数据均来自对应Page的data。

简单绑定

数据绑定使用"Mustache"语法(双大括号)将变量包起来,可以作用于:

内容

<view> {{ message }} </view>

Page({
 data: {
 message: 'Hello MINA!'
 }
})

组件属性(需要在双引号之内)

<view id="item-{{id}}"> </view>

Page({
 data: {
 id: 0
 }
})

控制属性(需要在双引号之内)

<view wx:if="{{condition}}"> </view>

Page({
 data: {
 condition: true
 }
})

运算

可以在{{}}内进行简单的运算,支持的有如下几种方式:

三元运算

<view hidden="{{flag ? true : false}}"> Hidden </view>

算数运算

<view> {{a + b}} + {{c}} + d </view>

Page({
 data: {
 a: 1,
 b: 2,
 c: 3
 }
})

view中的内容为3 + 3 + d

逻辑判断

<view wx:if="{{length > 5}}"> </view>

字符串运算

<view>{{"hello" + name}}</view>

Page({
 data:{
 name:"MINA"
 }
})

组合

也可以在Mustache内直接进行组合,构成新的对象或者数组

数组

<view wx:for-items="{{[zero, 1, 2, 3, 4]}}"> {{item}} </view>

Page({
 data: {
 zero: 0
 }
})

最终组合成数组[0, 1, 2, 3, 4]

对象

<template is="objectCombine" data="{{for: a, bar: b}}"></template>
Page({
 data: {
 a: 1,
 b: 2
 }
})

最终组合成的对象是{for: 1, bar: 2}

也可以用扩展运算符...来将一个对象展开

<template is="objectCombine" data="{{...obj1, ...obj2, e: 5}}"></template>
Page({
 data: {
 obj1: {
  a: 1,
  b: 2
 },
 obj2: {
  c: 3,
  d: 4
 }
 }
})

最终组合成的对象是{a: 1, b: 2, c: 3, d: 4, e: 5}

如果对象的key和value相同,也可以间接地表达

<template is="objectCombine" data="{{foo, bar}}"></template>

Page({
 data: {
 foo: 'my-foo',
 bar: 'my-bar'
 }
})

最终组合成的对象是{foo: 'my-foo', bar:'my-bar'}

注意:上述方式可以随意组合,但是如有存在变量名相同的情况,后边的会覆盖前面,如

<template is="objectCombine" data="{{...obj1, ...obj2, a, c: 6}}"></template>

Page({
 data: {
 obj1: {
  a: 1,
  b: 2
 },
 obj2: {
  b: 3,
  c: 4
 },
 a: 5
 }
})

最终组合成的对象是{a: 5, b: 3, c: 6}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
Nov 11 Javascript
jquery插件制作 手风琴Panel效果实现
Aug 17 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
js判断两个日期是否相等的方法
Sep 10 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
Feb 28 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
Mar 12 Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
Sep 17 Javascript
小程序实现录音功能
Sep 22 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
Nov 06 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 #Javascript
微信小程序 教程之WXML
Oct 18 #Javascript
原生JS实现匀速图片轮播动画
Oct 18 #Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 #Javascript
原生js实现网易轮播图效果
Apr 10 #Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 #Javascript
JSON对象 详解及实例代码
Oct 18 #Javascript
You might like
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
深入解析contentWindow, contentDocument
2013/07/04 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
JavaScript 基础函数_深入剖析变量和作用域
2016/05/18 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
JavaScript变量基本使用方法实例分析
2019/11/15 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
python怎么对数字进行过滤
2020/07/05 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
材料加工硕士生求职信
2013/10/10 职场文书
新教师工作感言
2014/02/16 职场文书
经典安踏广告词
2014/03/21 职场文书
个人创业事迹材料
2014/12/30 职场文书
学校开除通知书
2015/04/25 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
签字仪式主持词
2015/07/03 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
创业计划书之农家乐
2019/10/09 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
MySQL8.0.18配置多主一从
2021/06/21 MySQL