微信小程序技巧之show内容展示,上传文件编码问题


Posted in Javascript onJanuary 23, 2017

show内容展示

尝试用微信小程序的template组件实现。同时,尝试页面间转跳时传参,在目标页面引入模板文件实现 写的更少,做的更多 篇幅有限详细代码此处省略

<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
      });
    }  
  });
  /*
   * 部分公共逻辑页代码
   */
  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
    };
    // 数据列表
    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;
        // 统一格式
        if (!Array.isArray(showList) &&
          typeof showList === '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) {
          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') {
              // 计算宠物年龄
              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 里的数据在真机预览的时候是无效的。那就尝试改变编码进行传输,在uploadFile 的参数中加入

header: {“chartset”:”utf-8”}

或是

header: {"content-type":'application/x-www-form-urlencoded'}

需要改到 formData 中,尝试将编码数据加入formData,但仅仅传输了数据,并没有改变编码.header有问题暂时找不到解决方案,所以编码操作暂时只能手动进行.在javascript 中,字符串编码函数是 encodeURI, 在小程序中尝试可以使用。所以,将代码改为如下: 

wx.uploadFile({
    url: 'Upload image server path (Must be secure https)',
    // 待上传的图片,由 chooseImage获得
    filePath: tempFilePaths[0],
    name: 'file',
    // HTTP 请求中其他额外的 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);
    }
  });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js类中的公有变量和私有变量
Jul 24 Javascript
JavaScript中实现块作用域的方法
Apr 01 Javascript
window.name代替cookie的实现代码
Nov 28 Javascript
JavaScript中window、doucment、body的解释
Aug 14 Javascript
浅谈document.write()输出样式
May 07 Javascript
用AngularJS的指令实现tabs切换效果
Aug 31 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
Sep 18 Javascript
Angular5中提取公共组件之radio list的实例代码
Jul 10 Javascript
element-ui中按需引入的实现
Dec 25 Javascript
浅谈vue权限管理实现及流程
Apr 23 Javascript
微信小程序整个页面的自动适应布局的实现
Jul 12 Javascript
Javascript同时声明一连串(多个)变量的方法
Jan 23 #Javascript
jQuery点击导航栏选中更换样式的实现代码
Jan 23 #Javascript
jQuery弹出层插件popShow(改进版)用法示例
Jan 23 #Javascript
JS判断指定dom元素是否在屏幕内的方法实例
Jan 23 #Javascript
jQuery弹出层插件popShow用法示例
Jan 23 #Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 #Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
Jan 23 #Javascript
You might like
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
基于vue的换肤功能的示例代码
2017/10/10 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
布同 统计英文单词的个数的python代码
2011/03/13 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
美术教学感言
2014/02/22 职场文书
喜之郎果冻广告词
2014/03/20 职场文书
常务副总经理任命书
2014/06/05 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
2015年超市工作总结
2015/04/09 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
致接力运动员加油稿
2015/07/21 职场文书
大学体育课感想
2015/08/10 职场文书
中秋节主题班会
2015/08/14 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书