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


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 相关文章推荐
学习ExtJS TextField常用方法
Oct 07 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
javascript教程:关于if简写语句优化的方法
May 17 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 Javascript
javascript用正则表达式过滤空格的实现代码
Jun 14 Javascript
js插件Jcrop自定义截取图片功能
Oct 14 Javascript
用JS实现简单的登录验证功能
Jul 28 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
Nov 24 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
如何在Express4.x中愉快地使用async的方法
Nov 18 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
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
用jquery仿做发微博功能示例
2014/04/18 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
Python绘制3D图形
2018/05/03 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
心得体会范文
2014/01/04 职场文书
大学新生军训感言
2014/02/25 职场文书
房屋所有权证明
2014/10/20 职场文书
孔繁森观后感
2015/06/10 职场文书