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


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权威指南 学习笔记之null和undefined
Sep 25 Javascript
JavaScript 函数replace深入了解
Mar 14 Javascript
jquery控制左右箭头滚动图片列表的实例
May 20 Javascript
深入理解javascript动态插入技术
Nov 12 Javascript
JavaScript中实现map功能代码分享
Jun 11 Javascript
jQuery Validation Plugin验证插件手动验证
Jan 26 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
Sep 20 Javascript
Angularjs中controller的三种写法分享
Sep 21 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
laravel-admin 与 vue 结合使用实例代码详解
Jun 04 Javascript
JavaScript JSON使用原理及注意事项
Jul 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用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
nodejs基础应用
2017/02/03 NodeJs
Angular 表单控件示例代码
2017/06/26 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
详解JavaScript的变量
2019/04/04 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
[22:07]DOTA2-DPC中国联赛 正赛 iG vs Magma 选手采访
2021/03/11 DOTA
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
手术室护士自我鉴定
2013/10/14 职场文书
力学专业毕业生自荐信
2013/11/17 职场文书
学生党支部先进事迹
2014/02/04 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
副检察长四风问题对照检查材料思想汇报
2014/10/07 职场文书
学校就业保障协议书
2019/06/24 职场文书
Python如何加载模型并查看网络
2022/07/15 Python