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


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 相关文章推荐
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
js事件监听机制(事件捕获)总结
Aug 08 Javascript
js QQ客服悬浮效果实现代码
Dec 12 Javascript
JS制作简单的三级联动
Mar 18 Javascript
JavaScript创建一个object对象并操作对象属性的用法
Mar 23 Javascript
JS简单限制textarea内输入字符数量的方法
Oct 14 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
Aug 08 Javascript
深入理解Angularjs中的$resource服务
Dec 31 Javascript
Vue Cli与BootStrap结合实现表格分页功能
Aug 18 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 Javascript
Node.js中文件系统fs模块的使用及常用接口
Mar 06 Javascript
JS自定义右键菜单实现代码解析
Jul 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
PHP5中MVC结构学习
2006/10/09 PHP
PHP一些常用的正则表达式字符的一些转换
2008/07/29 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
php实例分享之二维数组排序
2014/05/15 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
JavaScript中常见陷阱小结
2010/04/27 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
jquery实现的仿天猫侧导航tab切换效果
2015/08/24 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
Python实现网站文件的全备份和差异备份
2014/11/30 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
2016/09/19 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
django框架模板语言使用方法详解
2019/07/18 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
基于python实现操作redis及消息队列
2020/08/27 Python
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
园林资料员岗位职责
2013/12/30 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL