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


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替换已存在于element上的event的方法
Mar 09 Javascript
电子商务网站上的常用的js放大镜效果
Dec 08 Javascript
javascript在myeclipse中报错的解决方法
Oct 29 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
Google Maps基础及实例解析
Aug 06 Javascript
初识简单却不失优雅的Vue.js
Sep 12 Javascript
原生js实现键盘控制div移动且解决停顿问题
Dec 05 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
Jul 11 Javascript
在vue中使用公共过滤器filter的方法
Jun 26 Javascript
vue项目刷新当前页面的三种方法
Dec 04 Javascript
JavaScript设计模式之责任链模式实例分析
Jan 16 Javascript
Node.js API详解之 V8模块用法实例分析
Jun 05 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 array_walk() 数组函数
2011/07/12 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
php解析json数据实例
2014/08/19 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
JS中静态页面实现微信分享功能
2017/02/06 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
python比较2个xml内容的方法
2015/05/11 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
一个简单的python爬虫程序 爬取豆瓣热度Top100以内的电影信息
2018/04/17 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
计算机应用专业毕业生求职信
2013/10/24 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js