微信小程序数据过滤(filter)方法

因为微信小程序的wxml和js的内部实现机制是分开编译的。所以在wxml是没办法调用js的函数的。这会导致WXML缺少一个我们常用的功能,那就是没有办法在视图层对数据做一些特殊处理。比如我们从后端获取到一个时间戳,然后需要在界面上把这些日期都格式化显示为2017-01-01这种格式的日期形式,在Vue, Angular之类的前端Web框架中,提供了如filter之类相应比较好用的方案。小程序是没有这些方法的。但是最近小程序推出了wxs类型文件就是解决这类问题的。

使用

首先新建filter.wxs文件(也可以直接写在wxml文件中,但是这中公共方法还是应该单独建文件的)。

var formatDate = function (timestamp,option) {
  var date = getDate(parseInt(timestamp));
  var year = date.getFullYear()
  var month = date.getMonth() + 1
  var day = date.getDate()
  var hour = function(){
    if (date.getHours()<10){  //补‘0’
      return ‘0‘ + date.getHours()
    }
    return date.getHours();
  }
  var minute = function () {
    if (date.getMinutes() < 10) {
      return ‘0‘ + date.getMinutes()
    }
    return date.getMinutes();
  }
  var second = function () {
    if (date.getSeconds() < 10) {
      return ‘0‘ + date.getSeconds()
    }
    return date.getSeconds();
  }

  if (option==‘notime‘){  //不需要时间
    return year + ‘-‘ + month + ‘-‘ + day;
  }

  return year + ‘-‘ + month + ‘-‘ + day + ‘ ‘ + hour() + ‘:‘ + minute() + ":" + second();
}

module.exports = {
  formatDate: formatDate,
};

在wxml文件中使用

<wxs src=‘filter.wxs‘ module=‘filter‘ />
  <view>日期:{{filter.formatDate(要过滤的时间戳)}}</view>

注意事项

wxs是不同于js文件的。所以很多js的api是不支持的。具体支持看官方文档
例如本来获取日期,我们原本是调用new Date()的。在wxs是不支持的,但是小程序提供了一个全局函数getDate()代替。
还有,wxs不支持任何ES6的语法。什么let,Map()都用不了(OS:真是low啊-_-!)。

原文地址:https://www.cnblogs.com/jlfw/p/12696951.html

时间: 2024-08-28 20:18:50

微信小程序数据过滤(filter)方法的相关文章

微信小程序数据请求方法wx.request小测试

微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </view> <button bindtap="RequestData" value="Button">Button</button> 主要是一个按钮,点击后将请求的数据写入到textarea中 js文件: Page({ data:{ textd

当微信小程序遇上filter~

在微信小程序的开发过程中,当你想要实现不同页面间的数据绑定,却为此抓耳饶腮时,不妨让微信小程序与filter 来一场完美的邂逅,相信会给你带来别样的惊喜~ 前段时间被安利了一个很实用的公众号-前端早读课,它简洁.大方的页面和方便.实用的功能深深地吸引着我~(^U^)ノ 恰好这段时间学了小程序,就自己仿着写了个前端早读课的小程序. 实现的功能 不同页面间的数据绑定 随机显示数组里的元素 实时显示系统的日期 鼠标点击和页面跳转等基本功能 swiper组件和template样式模板的使用 使用easy

微信小程序的正确开启方法,最新更新小程序附带详细图

我的微信版本早就更新到了最新版本V6.5.3 ,但是找遍了每个角落,都始终见不到"小程序"相关的东西,后来才知道,正确的开启方法如下! 打开微信,搜索"小程序示例"即可,点击小程序,进入界面,退出来之后会在"发现"一栏的最下面有"小程序的选项",详细的看下图.等添加完之后就可以从里面搜索小程序,添加小程序了! 看到了吧,非常多的小程序,可以免下载很多APP,节省手机空间. 但是,这个小程序搜索有个规则,就是你要搜索小程序,必须

微信小程序-数据缓存

每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置.获取和清理.本地缓存最大为10MB. 注意: localStorage 是永久存储的,但是我们不建议将关键信息全部存在 localStorage,以防用户换设备的情况. wx.setStorage(OBJECT) 将数据存储

微信小程序页面跳转方法总结

微信小程序页面跳转目前有以下方法(不全面的欢迎补充): 1. 利用小程序提供的 API 跳转: // 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面. // 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,但是 redirectTo wx.navigateTo({ url: 'page/home/home?user_id=111' }) // 关闭当前页面,返回上一页面或多级页面.可通过 getCurrentPages() 获取当

原生微信小程序数据渲染

一直在写vue,第一次接触微信小程序,还是原生,最开始做的时候真的很闹心啊啊啊啊啊啊啊啊啊啊啊啊!!所以最近大概更新的都是微信小程序原生的内容了~~么么哒!!一定会继续努力的!!tips:在小程序项目中,app.json文件里的 { //页面配置路径 "pages":[ "page/index/index", //默认首页 "page/index/logs", ] } 正题:微信小程序原生数据渲染条件渲染:wx:if wx:elif wx:els

微信小程序图片变形解决方法

微信小程序的image标签中有个mode属性,使用aspectFill即可 注:image组件默认宽度300px.高度225px mode 有效值: mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式.

一种轻量级的微信小程序日志监控的方法

今天一个活动要写个H5,明天一个功能要用小程序,天天都在写bug.用户反馈小程序用起来有问题还特么还不知道到底出了啥bug,反馈多了,老板要扣工资了!看来挖了太多坑不填也不行,程序异常还是要主动追踪,今天给大家介绍一个轻量级的错误日志监控服务Fundebug. Fundebug的小程序监控插件接入简单,只需要下载相应的插件文件,然后在app.js文件中引入并配置apikey即可.唯一要注意的就是微信需要设置request合法域名这一点不能忘记了. 1. 创建微信小程序监控项目 需要注册账号,点击

微信小程序——极点日历使用方法

极点日历github项目地址 添加至自己的小程序方法 极点日历属性接口文档 代码实例: xml: <calendar calendar-style="calendar" header-style="calendar-header" board-style="calendar-board" days-color="{{dayStyle}}" weeks-type="cn" binddayClick=&q