微信小程序技巧之show内容展示,上传文件编码问题
show内容展示
尝试用微信小程序的template组件实现。同时,尝试页面间转跳时传参,在目标页面引入模板文件实现写的更少,做的更多篇幅有限详细代码此处省略
<viewclass="show-warp">
<blockwx:for="{{discuss}}"wx:key="index">
<templateis="discuss"data="{{item}}"></template>
<templateis="discuss-reply"data="{{item}}"></template>
<templateis="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
});
}
});
/*
*部分公共逻辑页代码
*/
functionlist(option){
varopt={
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
};
//数据列表
varshowList=[];
varobjDa=[];
this.data.replyListArr=[];
//保存/修改this指向
varself=this;
ajax({
url:opt.url,
data:opt.data,
cb:function(res){
showList=res.data.data;
//统一格式
if(!Array.isArray(showList)&&
typeofshowList==='object'){
//计算评论发布时间
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;
}
//更新评论列表
if(opt.update){
letda=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(vari=0,len=objDa.length;i<len;i++){
if(opt.cb&&typeofopt.cb==='function'){
//计算宠物年龄
objDa[i].petAge=opt.cb(objDa[i].cp_chongbir||
objDa[i].cp_chongbirth);
}
}
self.setData({
discuss:objDa
});
}elseif(res.data.status===2||res.data.status===0){
self.onLoad();
}
objDa=[];
}
});
}
上传文件编码问题(*)
header里的数据在真机预览的时候是无效的。那就尝试改变编码进行传输,在uploadFile的参数中加入
header:{“chartset”:”utf-8”}
或是
header:{"content-type":'application/x-www-form-urlencoded'}
需要改到formData中,尝试将编码数据加入formData,但仅仅传输了数据,并没有改变编码.header有问题暂时找不到解决方案,所以编码操作暂时只能手动进行.在javascript中,字符串编码函数是encodeURI,在小程序中尝试可以使用。所以,将代码改为如下:
wx.uploadFile({
url:'Uploadimageserverpath(Mustbesecurehttps)',
//待上传的图片,由chooseImage获得
filePath:tempFilePaths[0],
name:'file',
//HTTP请求中其他额外的formdata
formData:{
//city:'太原',
city:encodeURI('太原'),
//name:'taiyan',
name:encodeURI('taiyan')//名称
},
success:function(res){
console.log("success",res);
},
fail:function(res){
console.log("fail",res);
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。