微信小程序 wxml 文件中如何让多余文本省略号显示?_童谣_前端开发者

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

1、wxs

1、wxs

 

 

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

 

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

 

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

 

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

 

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

WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构

 

2、wxs 怎么用

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
// 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

// page.jsPage({
data: {
array: [
]
}
})
// page.wxmlvarfunction(array) {
var undefined;
forvari) {
max

array[i] :
(max
max : array[i]);
}
return max;
}
module.exports.getMax
getMax;

输出:

 

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

 可以直接写在 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
}
// 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
}

// app.wxsvarfunction (text, textLength) {
if undefined) {
return;
}
elseif textLength) {
return;
}
else {
return text;
}
}
module.exports
{
substring: substring
}

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

 wxml 文件中进行引用使用。 文件中进行引用使用。

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

// page.wxml 部分代码
<!– 引入 app.wxs 脚本 –><wxs src=”../../../../utils/app.wxs” module=”tools”/><view></view>

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

 

3、举一反三

举一反三

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

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

推荐阅读

推荐阅读推荐阅读

如何制作国旗头像 | 小程序七十二变之 canvas 绘制挂件头像

如何制作国旗头像 | 小程序七十二变之 canvas 绘制挂件头像如何制作国旗头像 | 小程序七十二变之 canvas 绘制挂件头像如何制作国旗头像 | 小程序七十二变之 canvas 绘制挂件头像

 

 

» 本文来自:前端开发者 » 《微信小程序 wxml 文件中如何让多余文本省略号显示?_童谣_前端开发者》
» 本文链接地址:https://www.rokub.com/73390.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!