1、data中定义的变量值,如果定义的是对象,在赋值对象中的具体某个属性值时,需要用单引号''括起来,如:'rgb.r'
data: {
rgb:{
r:0,
g:0,
b:0
},
fullColor:'0,0,0'
}
如上代码中data定义了对象rgb和字符串变量fullColor,当使用bindtap来setData时,对象中的某个变量需要用单引号来括起来,非对象中的变量set值时直接使用即可。
<button size="mini" type="default" bindtap="changeR">R</button>
changeR(){
this.setData({
'rgb.r':this.data.rgb.r+5 > 255?0:this.data.rgb.r+5
})
console.log(this.data.rgb)
}
observers:{
'rgb.r,rgb.g,rgb.b':function(r,g,b){
this.setData({
fullColor:`${r},${g},${b}`
})
}
}
2、注意上述代码中,是定义自定义组件时的监听器方式,其中"字符串模板"使用的是ES6中的模板字符串是使用反引号 (``) 来代替传统字符串中的双引号和单引号。这里特别需要注意。
另外,需要注意observers语法
observers:{
'x,x,x':function(obj){
}
}