在wxs中自定义了filter功能的截取卡号后四位
var cardNumFr = {
getCardNum: function (x) {
var s = x.substring(x.length - 4);
return s;
}
}
module.exports = {
getCardNum: cardNumFr.getCardNum
}
在存在wx:for的地方调用,正常工作,然而在一般的页面中调用,一直报错,闹了好久好久,静心排查,发现渲染层出错,追踪后得知,在小程序中先渲染页面,再执行onLoad,所以渲染页面时使用了初始值。
划重点。。。。。
解决方法,先判断是否有值,在进行filter:
<text wx:if="{{newCard.newBankNo}}">{{newCard.newBankName}}({{cardNumFr.getCardNum(newCard.newBankNo)}})
</text>
搞定,开开心心下班。
唠叨一句,加载wxs时首先要在应用的wxml页面引入
<wxs module="cardNumFr" src="../../../filter/cardNumFr.wxs"></wxs>