1、關(guān)于微信小程序數(shù)據(jù)渲染的問(wèn)題問(wèn):我想用一個(gè)方法來(lái)過(guò)濾type中的數(shù)據(jù),但是在小程序中好像不能這么用 不知道有沒(méi)有遇到過(guò)相同問(wèn)題的同學(xué)(不知道微信小程序有沒(méi)有類似angular類似filter的過(guò)濾方法=-=)Luochengor ...

問(wèn):我想用一個(gè)方法來(lái)過(guò)濾type中的數(shù)據(jù),但是在小程序中好像不能這么用 不知道有沒(méi)有遇到過(guò)相同問(wèn)題的同學(xué)(不知道微信小程序有沒(méi)有類似angular類似filter的過(guò)濾方法=-=)
1、將顯示的數(shù)據(jù)和完整的數(shù)據(jù)分開(kāi)定義,在獲取到數(shù)據(jù)后就進(jìn)行過(guò)濾,過(guò)濾后把要顯示的數(shù)據(jù)進(jìn)行setData
2、如果是簡(jiǎn)單的過(guò)濾,頁(yè)面也支持 if 判斷的,不過(guò)這樣會(huì)導(dǎo)致頁(yè)面上節(jié)點(diǎn)過(guò)多

3、通過(guò)樣式來(lái)過(guò)濾,可以根據(jù)type的字段來(lái)選擇對(duì)應(yīng)的class(即樣式是否為display:none;)如:可以在tpye中定義一個(gè)hide字段,當(dāng)hide為true時(shí)隱藏,當(dāng)hide為false時(shí),顯示,這種方式比較適合數(shù)據(jù)量較大(顯示層數(shù)據(jù)和完整數(shù)據(jù)分開(kāi)定義會(huì)占用過(guò)多的內(nèi)存,而且對(duì)較大的顯示數(shù)據(jù)進(jìn)行setData性能也比較差),并且只是展現(xiàn)不做其他業(yè)務(wù)處理的情況
總體來(lái)說(shuō),還是建議使用第一種方式
2、為什么一個(gè)類沒(méi)有定義login方法和getUserInfo方法卻還能調(diào)用?
在WxService中有如下語(yǔ)句:
class Service {
....沒(méi)有找到login和getUserInfo的定義
}
export default Service
在app.js中有如下語(yǔ)句:
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
})
},
})
為什么可以執(zhí)行this.WxService.login()和this.WxService.getUserInfo()?
ackHuang答
this.WxService是微信封裝的對(duì)象,對(duì)外是隱藏的。
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
}
})