A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、wxs

取数据想必大家都会,不就是 substring 吗?但是这种方法在 wxml 页面中是无效的。

那还有 css 啊,不一样可以做到吗?但是个人觉得 css 复用性太差,暂不考虑。

实在不行就用 js 呗,在获取到数据后就对数据进行截取。

这样好像可以,但数据一多稍微有点复杂,而且一般获取的数据可能会在多个页面进行展示,而如果想在不同的页面中显示不同长度的数据,这似乎又是个新问题。

这时你就需要用到 wxs 了,官方介绍是:「WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构」,没听过的可以去看一下官方文档说明。

2、wxs 怎么用
[url=][/url]
// page.jsPage({  data: {    array: [1, 2, 3, 4, 5, 1, 2, 3, 4]  }})// page.wxml<wxs module="m1">var getMax = function(array) {  var max = undefined;  for (var i = 0; i < array.length; ++i) {    max = max === undefined ?      array :      (max >= array ? max : array);  }  return max;}module.exports.getMax = getMax;</wxs><view> {{ m1.getMax(array) }} </view>输出:5[url=][/url]


这是一个官方的案例,wxs 可以直接写在 wxml 页面中,但是为了达到复用的效果,推荐单独建成文件调用。

我是这么写的,新建一个 app.wxs 文件,就像写普通的 js 方法差不多,写完之后用 module.exports 暴露,等待调用。
[url=][/url]
// app.wxsvar substring = function (text, textLength) {  if (text.length == 0 || text == undefined) {    return;  }  else if (text.length > textLength) {    return text.substring(0, textLength) + '...';  } else {    return text;  }}module.exports = {  substring: substring}[url=][/url]

然后在 wxml 文件中进行引用使用。
// page.wxml 部分代码<!-- 引入 app.wxs 脚本 --><wxs src="../../../../utils/app.wxs" module="tools" /><view>标题:{{ tools.substring(title, 10) }}</view>
这样就能自由地在各个页面中显示不同的字符串长度了。

3、举一反三
当然,如果想对时间的显示样式进行处理,一样可以在 wxs 文件中编写对应的函数方法进行调用处理。
总之 wxs 就相当于有了和 js 类似的能力,如果还有其他的小技巧,欢迎留言讨论,分享、讨论才是更好的学习方式。

2 个回复

倒序浏览
有任何问题欢迎在评论区留言
回复 使用道具 举报
或者添加学姐微信
DKA-2018
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马