收藏
回答

wxs奇怪的bug 在开发版本 和测试版上没问题 但是在正式版会出现问题

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 Bug 客户端 7.0.4 2.6.6

- 当前 Bug 的表现(可附上截图)


正式环境 一个转化金额的过滤器 竟然无效  但是在测试环境 在开发环境 以及真机调试都是没有问题的 能够正常显示金额 但是正式上线 这里却显示不了了



这里面其实我已经填写了一个数值 在填写数字之后 会把数字按照三位一个,号切割  当输入框失去焦点后  过滤器所在的div 层显示出来  但是你看到确实一个空白的  这是在正式发布的版本上



- 预期表现




- 复现路径




- 提供一个最简复现 Demo


需要对数字进行金钱格式转化   例如: 328562312.00 元 过滤成  328,562,312.00元


创建 numFr.wxs 过滤器


var numFr = {
  money: function (val) {
      var left = val.split('.')[0], right = '';
    right = val.indexOf('.') != -1 ? (val.toString().split(".")[1].length == 2 ? val.slice(val.indexOf('.')) : (val.toString().split(".")[1].length == 1 ? val.slice(val.indexOf('.')) + '0' : val.slice(val.indexOf('.')) + '00')):'.00'
      var regexp = getRegExp('(\d{1,3})', 'g');
      var temp = left.split('').reverse().join('').match(regexp);
      var st = (val < 0 ? "-" : "") + temp.join(',').split('').reverse().join('') + right;
      console.log(val)
      return st
  }
}
module.exports = {
  money: numFr.money
}


在  index.wxml 中 使用


<wxs module="numFr" src="../../filter/numFr.wxs"></wxs>
<label>金额</label>
<div class='moneyformat' wx:if="{{ismoney && mount!=''}}" bindtap='tabpanel'>{{numFr.money(mount)}}</div>
<span class="alerticon">元</span>
<input type='text' value='{{mount}}' name='amountmoney' bindblur="tabformat" focus="{{pricefocus}}" bindinput="bindprice"  hidden="{{ismoney}}"/>


JS 里面就不写了  但是操作是 输入金额数字后  输入框失去焦点 然后 div (class为 moneyformat的)里 显示 过滤转化后的金额

最后一次编辑于  2019-04-24
回答关注问题邀请回答
收藏

1 个回答

  • Yrobot
    Yrobot
    2019-05-04

    同样的问题,wxs处理格式化字符串在开发版里有一定几率会导致返回结果为空。同求官方解答

    2019-05-04
    赞同
    回复
登录 后发表内容