微信小程序技巧之show內(nèi)容展示,上傳文件編碼問題
show內(nèi)容展示
嘗試用微信小程序的template組件實(shí)現(xiàn)。同時(shí),嘗試頁(yè)面間轉(zhuǎn)跳時(shí)傳參,在目標(biāo)頁(yè)面引入模板文件實(shí)現(xiàn) 寫的更少,做的更多 篇幅有限詳細(xì)代碼此處省略
<view class="show-warp">
<block wx:for="{{discuss}}" wx:key="index">
<template is="discuss" data="{{item}}"></template>
<template is="discuss-reply" data="{{item}}"></template>
<template is="discuss-more" data="{{item}}"></template>
</block>
</view>
Page({
data: {
discuss: [],
petAge: 0,
reply: false,
height: 20
},
onLoad: function(){
util.dataList.call(this, {
cb: util.petAge
});
}
});
/*
* 部分公共邏輯頁(yè)代碼
*/
function list(option) {
var opt = {
url: option.url || 'https://api.zg5v.com/index.php/index/show/showindex',
data: option.data || {
uid: 148,
num: option.pageNum || 0
},
update: option.update || false,
cb: option.cb || false,
func: option.func || false
};
// 數(shù)據(jù)列表
var showList = [];
var objDa = [];
this.data.replyListArr = [];
// 保存/修改 this指向
var self = this;
ajax({
url: opt.url,
data: opt.data,
cb: function(res) {
showList = res.data.data;
// 統(tǒng)一格式
if (!Array.isArray(showList) &&
typeof showList === 'object') {
// 計(jì)算評(píng)論發(fā)布時(shí)間
showList.pl.forEach(function(e, i) {
e.cp_chongbirth = e.cp_addtime * 1000;
e.replyTime = opt.cb(e.cp_chongbirth, true);
}, showList.pl);
objDa.push(showList);
} else {
objDa = showList;
}
// 更新評(píng)論列表
if (opt.update) {
let da = res.data.data.pl,
plDa = self.data.discuss,
i = 0,
j = 0,
len = da.length,
jLen = plDa.length;
for (; j < jLen; j++) {
for (; i < len; i++) {
if (plDa[j].pl.length > 0) {
plDa[j].pl.push(da[i]);
}
}
}
objDa = plDa;
opt.update = !opt.update;
}
if (res.data.status === 1) {
for (var i = 0, len = objDa.length; i < len; i++) {
if (opt.cb && typeof opt.cb === 'function') {
// 計(jì)算寵物年齡
objDa[i].petAge = opt.cb(objDa[i].cp_chongbir ||
objDa[i].cp_chongbirth);
}
}
self.setData({
discuss: objDa
});
} else if (res.data.status === 2 || res.data.status === 0) {
self.onLoad();
}
objDa = [];
}
});
}
上傳文件編碼問題(*)
header 里的數(shù)據(jù)在真機(jī)預(yù)覽的時(shí)候是無(wú)效的。那就嘗試改變編碼進(jìn)行傳輸,在uploadFile 的參數(shù)中加入
header: {“chartset”:”utf-8”}
或是
header: {"content-type":'application/x-www-form-urlencoded'}
需要改到 formData 中,嘗試將編碼數(shù)據(jù)加入formData,但僅僅傳輸了數(shù)據(jù),并沒有改變編碼.header有問題暫時(shí)找不到解決方案,所以編碼操作暫時(shí)只能手動(dòng)進(jìn)行.在javascript 中,字符串編碼函數(shù)是 encodeURI, 在小程序中嘗試可以使用。所以,將代碼改為如下:
wx.uploadFile({
url: 'Upload image server path (Must be secure https)',
// 待上傳的圖片,由 chooseImage獲得
filePath: tempFilePaths[0],
name: 'file',
// HTTP 請(qǐng)求中其他額外的 form data
formData: {
// city: '太原',
city: encodeURI('太原'),
// name: 'taiyan',
name: encodeURI('taiyan') // 名稱
},
success: function(res) {
console.log("success", res);
},
fail: function(res) {
console.log("fail", res);
}
});
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)簡(jiǎn)單的操作桿旋轉(zhuǎn)示例詳解
這篇文章主要為大家介紹了JS實(shí)現(xiàn)簡(jiǎn)單的操作桿旋轉(zhuǎn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
微信小程序 action-sheet詳解及實(shí)例代碼
這篇文章主要介紹了微信小程序 action-sheet詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11
微信小程序 五星評(píng)分(包括半顆星評(píng)分)實(shí)例代碼
這篇文章主要介紹了微信小程序 五星評(píng)分(包括半顆星評(píng)分)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-12-12
微信小程序 scroll-view組件實(shí)現(xiàn)列表頁(yè)實(shí)例代碼
這篇文章主要介紹了微信小程序 scroll-view組件實(shí)現(xiàn)列表頁(yè)實(shí)例代碼的相關(guān)資料,scroll-view組件介紹scroll-view是微信小程序提供的可滾動(dòng)視圖組件,其主要作用是可以用來(lái)做手機(jī)端經(jīng)常會(huì)看到的上拉加載 ,需要的朋友可以參考下2016-12-12
JS處理數(shù)據(jù)實(shí)現(xiàn)分頁(yè)功能
這篇文章介紹了JS處理數(shù)據(jù)實(shí)現(xiàn)分頁(yè)功能的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
js簡(jiǎn)單封裝監(jiān)聽快捷鍵對(duì)象示例及使用
這篇文章主要為大家介紹了js簡(jiǎn)單封裝監(jiān)聽快捷鍵對(duì)象及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
sessionStorage多Tab標(biāo)簽頁(yè)數(shù)據(jù)共享問題分析
這篇文章主要為大家介紹了sessionStorage多Tab標(biāo)簽頁(yè)數(shù)據(jù)共享問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

