微信小程序 教程之数据绑定
系列文章:
微信小程序教程之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}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!