欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

小程序七十二变之多余文本省略号显示

程序员文章站 2022-05-18 21:15:11
废话不多说,之前写小程序碰到了一个问题,如何在 wxml 页面中截取数据? 1、wxs 取数据想必大家都会,不就是 substring 吗?但是这种方法在 wxml 页面中是无效的。 那还有 css 啊,不一样可以做到吗?但是个人觉得 css 复用性太差,暂不考虑。 实在不行就用 js 呗,在获取到 ......

废话不多说,之前写小程序碰到了一个问题,如何在 wxml 页面中截取数据?

1、wxs

 

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

 

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

 

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

 

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

 

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

 

2、wxs 怎么用

// page.js
page({
  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[i] :
      (max >= array[i] ? max : array[i]);
  }
  return max;
}
module.exports.getmax = getmax;
</wxs>
<view> {{ m1.getmax(array) }} </view>

输出:5

 

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

 

我是这么写的,新建一个 app.wxs 文件,就像写普通的 js 方法差不多,写完之后用 module.exports 暴露,等待调用。

小程序七十二变之多余文本省略号显示

// app.wxs
var 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
}

然后在 wxml 文件中进行引用使用。

// page.wxml 部分代码
<!-- 引入 app.wxs 脚本 -->
<wxs src="../../../../utils/app.wxs" module="tools" />
<view>标题:{{ tools.substring(title, 10) }}</view>

这样就能*地在各个页面中显示不同的字符串长度了。

 

3、举一反三

当然,如果想对时间的显示样式进行处理,一样可以在 wxs 文件中编写对应的函数方法进行调用处理。

总之 wxs 就相当于有了和 js 类似的能力,如果还有其他的小技巧,欢迎留言讨论,分享、讨论才是更好的学习方式。

推荐阅读