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


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 相关文章推荐
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
JQuery中serialize()、serializeArray()和param()方法示例介绍
Jul 31 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
May 27 Javascript
Bootstrap CSS组件之输入框组
Dec 17 Javascript
微信小程序 ecshop地址三级联动实现实例代码
Feb 28 Javascript
vue通过路由实现页面刷新的方法
Jan 25 Javascript
Vuejs+vue-router打包+Nginx配置的实例
Sep 20 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
ES7之Async/await的使用详解
Mar 28 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
Aug 22 Javascript
ES6 十大特性简介
Dec 09 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
图书管理程序(一)
2006/10/09 PHP
php 高效率写法 推荐
2010/02/21 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
angular.js实现列表orderby排序的方法
2018/10/02 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
python操作xml文件详细介绍
2014/06/09 Python
python数据结构之列表和元组的详解
2017/09/23 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
帕克纽约:PARKER NY
2018/12/09 全球购物
软件测试面试题
2014/01/05 面试题
后勤园长自我鉴定
2013/10/17 职场文书
建筑设计师岗位职责
2013/11/18 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
道路交通安全实施方案
2014/03/12 职场文书
大学生入党自荐书
2015/03/05 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
Oracle中update和select 关联操作
2022/01/18 Oracle