想在微信小程序的wxml文件里自如的像vue那样调用自定义的方法,发现并不成功,得利用WXS脚本语言。javascript
WXS脚本语言是 WeiXin Script 脚本语言的简称,是JavaScript、JSON、WXML、WXSS以后又一大小程序内部文件类型。截至到目前小程序已经提供了5种文件类型。vue
WXS的使用,有两种方式。java
一种是直接在WXML中编写。正则表达式
<!--wxml--> <wxs module="foo"> var some_msg = "hello world"; module.exports = { msg : some_msg, } </wxs> <view> {{foo.msg}} </view>
另一种是使用单独的WXS文件,而后在WXML中引入便可:小程序
<wxs src="../../wxs/issue.wxs" module="tools" />
wxs文件内容以下:微信小程序
var timeChn = function (val) { if (!val) { return false } var reg = getRegExp("-", "g"); var _time = val.replace(reg, "/") var realTime = getDate(val).getTime() var nowTime = getDate().getTime() var diffValue = nowTime - realTime var _min = diffValue / (60 * 1000) if (_min < 1) { return '刚刚' } else if (_min >= 1 && _min < 10) { return '1分钟前' } else if (_min >= 10 && _min < 30) { return '10分钟前' } else if (_min >= 30 && _min < 60) { return '半小时前' } else if (_min >= 60 && _min < 60 * 24) { return Math.floor(_min / 60) + '小时前' } else if (_min >= 60 * 24 && _min < 60 * 24 * 7) { return Math.floor(_min / (60 * 24)) + '天前' } else { return val } } module.exports = { timeChn: timeChn }
在wxml文件里使用以下:微信
<view>{{tools.timeChn(item.createdTime)}}</view>
WXS是小程序的一套脚本语言,wxs 与 javascript 是不一样的语言,有本身的语法,并不和 javascript 一致。其中包括了不少平常使用的javascript函数,在wxs中都是不能一样使用的。最近在作这个小程序的时候,涉及到时间格式化操做。就遇到了这个问题,之前写好了的格式化工具函数直接拷贝到小程序项目的wxs文件中,函数不能正常执行。其中包括了下面的几个错误:函数
一、正则表达式在字符串的replace函数中的使用方法不同,不能直接使用var a = /[0-9]/这种方式声明使用。正确的方式为var reg = getRegExp("-", "g");工具
二、获取当前时间不能经过new Date()获取,而是经过getDate方法获取。spa
三、使用let声明好像有问题(此未验证,反正let改为var声明就能够了)