1. 程式人生 > 實用技巧 >ROS MoveBase與路徑規劃

ROS MoveBase與路徑規劃

廢話不多說,之前寫小程式碰到了一個問題,如何在 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>

這樣就能自由地在各個頁面中顯示不同的字串長度了。

資源搜尋網站大全 https://www.renrenfan.com.cn 廣州VI設計公司https://www.houdianzi.com

3、舉一反三

當然,如果想對時間的顯示樣式進行處理,一樣可以在 wxs 檔案中編寫對應的函式方法進行呼叫處理。

總之 wxs 就相當於有了和 js類似的能力