微信小程序 教程之数据绑定
系列文章:
微信小程序教程之WXSS
微信小程序教程之引用
微信小程序教程之事件
微信小程序教程之模板
微信小程序教程之列表渲染
微信小程序教程之条件渲染
微信小程序教程之数据绑定
微信小程序教程之WXML
数据绑定
WXML中的动态数据均来自对应Page的data。
简单绑定
数据绑定使用"Mustache"语法(双大括号)将变量包起来,可以作用于:
内容
<view>{{message}}</view>
Page({ data:{ message:'HelloMINA!' } })
组件属性(需要在双引号之内)
<viewid="item-{{id}}"></view>
Page({ data:{ id:0 } })
控制属性(需要在双引号之内)
<viewwx:if="{{condition}}"></view>
Page({ data:{ condition:true } })
运算
可以在{{}}内进行简单的运算,支持的有如下几种方式:
三元运算
<viewhidden="{{flag?true:false}}">Hidden</view>
算数运算
<view>{{a+b}}+{{c}}+d</view>
Page({ data:{ a:1, b:2, c:3 } })
view中的内容为3+3+d
逻辑判断
<viewwx:if="{{length>5}}"></view>
字符串运算
<view>{{"hello"+name}}</view>
Page({ data:{ name:"MINA" } })
组合
也可以在Mustache内直接进行组合,构成新的对象或者数组
数组
<viewwx:for-items="{{[zero,1,2,3,4]}}">{{item}}</view>
Page({ data:{ zero:0 } })
最终组合成数组[0,1,2,3,4]
对象
<templateis="objectCombine"data="{{for:a,bar:b}}"></template> Page({ data:{ a:1, b:2 } })
最终组合成的对象是{for:1,bar:2}
也可以用扩展运算符...来将一个对象展开
<templateis="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相同,也可以间接地表达
<templateis="objectCombine"data="{{foo,bar}}"></template>
Page({ data:{ foo:'my-foo', bar:'my-bar' } })
最终组合成的对象是{foo:'my-foo',bar:'my-bar'}
注意:上述方式可以随意组合,但是如有存在变量名相同的情况,后边的会覆盖前面,如
<templateis="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}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!