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


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 09 Javascript
解javascript 混淆加密收藏
Jan 16 Javascript
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
Dec 28 Javascript
javascript 面向对象的JavaScript类
May 04 Javascript
firefox浏览器不支持innerText的解决方法
Aug 07 Javascript
javascript生成随机大小写字母的方法
Feb 20 Javascript
Jquery方式获取iframe页面中的 Dom元素
May 07 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
微信扫码支付零云插件版实例详解
Apr 26 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
在Vue组件上动态添加和删除属性方法
Feb 23 Javascript
微信小程序 checkbox使用实例解析
Sep 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
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
PHP文件与目录操作示例
2016/12/24 PHP
php unlink()函数使用教程
2018/07/12 PHP
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
详解Jquery实现ready和bind事件
2016/04/14 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
Python多进程同步简单实现代码
2016/04/27 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
Python中的asyncio代码详解
2019/06/10 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
2020/01/10 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
C语言笔试题
2014/09/04 面试题
《植物妈妈有办法》教学反思
2014/02/25 职场文书
九华山导游词
2015/02/03 职场文书
2016年公务员六五普法心得体会
2016/01/21 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书