<input id="smartMode_maxNoWaterHour" value="{{smartMode.ProtocolData.maxNoWaterDay == 99 ? '-' : smartMode.ProtocolData.maxNoWaterHour}}" bindblur="bc_smartMode" />
保持 smartMode.ProtocolData.maxNoWaterDay = 99 不变的情况下,应该一直显示 "-"
但是,如果使用setData去赋值smartMode.ProtocolData.maxNoWaterHour,就会显示smartMode.ProtocolData.maxNoWaterHour的值,而实际应该一直显示 '-'
但去赋值父对象,即setData去赋值 smartMode.ProtocolData 这个变量,则显示是正确的。
我没问题啊,你关吧
我今天单独拿出来,试试这块问题,发现是这样的机制(很简单 很基础的),所以我提的问题不是问题了:
input组件的输入框里,在输入数据之前,显示的是input的value属性的值(单项绑定的这个值)
当如果人为的往输入框里输入数据,那就会打断这种绑定,显示实时输入的值;
再说回上面,当使用一旦input组件输入数据,需要在input的事件中重新setData 里value的所有变量(smartMode.ProtocolData.maxNoWaterDay和smartMode.ProtocolData.maxNoWaterHour)才能生效,所以setData这2个变量的父变量,就可以显示正常了。
@青团社-日日天 等你看见没问题了,我过两天关闭问题
没问题的。不是小程序的bug,给一个对象里面的某个字段单独赋值,是需要
let smartMode = this.data.smartMode
smartMode.maxNoWaterHour = xxx
this.setData({
smartMode: smartMode
})
其他都每变,就是把setData的对象,从smartMode.ProtocolData.maxNoWaterHour ,改为smartMode.ProtocolData,就解决了问题。
我也纳闷,所以,感觉应该是小程序的绑定的bug
看看你的赋值