1、关于微信小程序数据渲染的问题问:我想用一个方法来过滤type中的数据,但是在小程序中好像不能这么用 不知道有没有遇到过相同问题的同学(不知道微信小程序有没有类似angular类似filter的过滤方法=-=)Luochengor ...
1、关于微信小程序数据渲染的问题
问:我想用一个方法来过滤type中的数据,但是在小程序中好像不能这么用 不知道有没有遇到过相同问题的同学(不知道微信小程序有没有类似angular类似filter的过滤方法=-=)
Luochengor答
1、将显示的数据和完整的数据分开定义,在获取到数据后就进行过滤,过滤后把要显示的数据进行setData
2、如果是简单的过滤,页面也支持 if 判断的,不过这样会导致页面上节点过多
3、通过样式来过滤,可以根据type的字段来选择对应的class(即样式是否为display:none;)如:可以在tpye中定义一个hide字段,当hide为true时隐藏,当hide为false时,显示,这种方式比较适合数据量较大(显示层数据和完整数据分开定义会占用过多的内存,而且对较大的显示数据进行setData性能也比较差),并且只是展现不做其他业务处理的情况
总体来说,还是建议使用第一种方式
2、为什么一个类没有定义login方法和getUserInfo方法却还能调用?
在WxService中有如下语句:
class Service {
....没有找到login和getUserInfo的定义
}
export default Service
在app.js中有如下语句:
import WxService from 'helpers/WxService'
APP({
WxService: new WxService,
getUserInfo() {
return this.WxService.login()
.then(data => {
console.log(data)
return this.WxService.getUserInfo()
})
.then(data => {
console.log(data)
this.globalData.userInfo = data.userInfo
return this.globalData.userInfo
})
},
})
为什么可以执行this.WxService.login()和this.WxService.getUserInfo()?
ackHuang答
this.WxService是微信封装的对象,对外是隐藏的。
https://mp.weixin.qq.com/debu...
wx.getUserInfo({
success: function(res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //性别 0:未知、1:男、2:女
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
}
})