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


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中的其他对象
Jan 16 Javascript
JQuery 风格的HTML文本转义
Jul 01 Javascript
angularJs中datatable实现代码
Jun 03 Javascript
React如何利用相对于根目录进行引用组件详解
Oct 09 Javascript
微信小程序引用iconfont图标的方法
Oct 22 Javascript
详解Vue.js自定义tipOnce指令用法实例
Dec 19 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
js中null与空字符串&quot;&quot;的区别讲解
Jan 17 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 Javascript
JavaScript使用localStorage存储数据
Sep 25 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 23 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中上传大体积文件时需要的设置
2006/10/09 PHP
PHP学习之整理字符串
2011/04/17 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
Vue实现侧边菜单栏手风琴效果实例代码
2018/05/31 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
年终总结会主持词
2014/03/25 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
物业接待员岗位职责
2015/04/15 职场文书
村党组织公开承诺书
2015/04/30 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
python 爬取豆瓣网页的示例
2021/04/13 Python
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python