ROS MoveBase與路徑規劃
阿新 • • 發佈:2020-12-05
廢話不多說,之前寫小程式碰到了一個問題,如何在 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類似的能力