let that = this //show代表了数据库表中的showTime属性,是否显示消息时间 var show = false //无记录时,true if (this.data.chats.length == 0) show = true //判断上下两条消息的时间差决定是否显示时间,这里设置了2分钟:120000毫秒,可自行修改 else { if (Date.now() - this.data.chats[this.data.chats.length - 1].sendTimeTS > 120000) show = true } const _ = db.command //消息空白处理 if (!that.data.textInputValue) { wx.showToast({ title: '不能发送空白信息', icon: 'none', }) return }
这个是获取高度的代码,push的代码贴出来
let that = this
//show代表了数据库表中的showTime属性,是否显示消息时间
var show = false
//无记录时,true
if (this.data.chats.length == 0)
show = true
//判断上下两条消息的时间差决定是否显示时间,这里设置了2分钟:120000毫秒,可自行修改
else {
if (Date.now() - this.data.chats[this.data.chats.length - 1].sendTimeTS > 120000)
show = true
}
const _ = db.command
//消息空白处理
if (!that.data.textInputValue) {
wx.showToast({
title: '不能发送空白信息',
icon: 'none',
})
return
}
//消息内容赋值 文本高度在这里设置
const doc = {
openid: that.data.openid,
msgText: "text",
textContent: that.data.textInputValue,
//这里获取文本同时计算高度放入到数据库
textHeight:that.data.textHeight,
sendTime: util.formatTime(new Date()),
sendTimeTS: Date.now(),
showTime: show,
}
//添加数据库表中该记录的records数组,并跳转页面到底部
chatroomCollection.where({
_openid: _.or(_.eq(that.data.openid), _.eq(that.data.match_openid)),
match_openid: _.or(_.eq(that.data.openid), _.eq(that.data.match_openid))
})
.update({
data: {
records: _.push(doc)
}
})
.then(res => {
that.goBottom()
})
//消息设空
that.setData({
textInputValue: ""
})
//测试代码 组件高度===========
var query = wx.createSelectorQuery();
//选择id
let i = this.data.chats.length;
console.log('#'+ 'textID_' + i);
query.select('#'+ 'textID_' + i).boundingClientRect()
query.exec(function(res) {
//res就是 所有标签为mjltest的元素的信息 的数组
console.log(res);
//取高度
console.log(res[0].height);
})
//测试代码 组件高度===========
},
textInputValue:"xxx"
}, ()=>{
//在这里获取高度
})
只有我一个人看不出与云数据库有毛线关系吗?