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


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 相关文章推荐
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
使用javascript控制cookie显示和隐藏背景图
Feb 12 Javascript
JS实现点击按钮自动增加一个单元格的方法
Mar 09 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
Mar 23 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
JS实现从顶部下拉显示的带动画QQ客服特效代码
Oct 24 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
Dec 23 Javascript
vue中 this.$set的用法详解
Sep 06 Javascript
jquery弹窗时禁止body滚动条滚动的例子
Sep 21 jQuery
javascript设计模式之迭代器模式
Jan 30 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过滤危险html代码的函数
2008/07/22 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
常用PHP框架功能对照表
2014/10/23 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
php实现复制移动文件的方法
2015/07/29 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
js判断是否按下了Shift键的方法
2015/01/27 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
2020/11/09 jQuery
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python3之手动创建迭代器的实例代码
2019/05/22 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
精伦电子Java笔试题
2013/01/16 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
培训讲师岗位职责
2014/04/13 职场文书
和谐社区口号
2014/06/19 职场文书
计划生育证明书写要求
2014/09/17 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
给客户的感谢信
2015/01/21 职场文书
副总经理岗位职责范本
2015/04/08 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
利用Python多线程实现图片下载器
2022/03/25 Python
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers