微信小程序技巧之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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
Javascript document.referrer判断访客来源网址
May 15 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
javascript trim函数在IE下不能用的解决方法
Sep 12 Javascript
基于JavaScript实现仿京东图片轮播效果
Nov 06 Javascript
javascript实现平滑无缝滚动
Aug 09 Javascript
浅谈react前后端同构渲染
Sep 20 Javascript
angularjs的单选框+ng-repeat的实现方法
Sep 12 Javascript
js正则取值的结果数组调试方法
Oct 10 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
javascript实现简单打字游戏
Oct 29 Javascript
WebWorker 封装 JavaScript 沙箱详情
Nov 02 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
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
Jquery练习之表单验证实现代码
2010/12/14 Javascript
jQuery判断元素是否是隐藏的代码
2011/04/24 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
Javascript基础教程之for循环
2015/01/18 Javascript
究竟什么是Node.js?Node.js有什么好处?
2015/05/29 Javascript
jQuery插件boxScroll实现图片轮播特效
2015/07/14 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
JS实现隔行换色的表格排序
2017/03/27 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python处理csv中的空值方法
2018/06/22 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
python 安装教程之Pycharm安装及配置字体主题,换行,自动更新
2020/03/13 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
邮政员工辞职信
2014/01/16 职场文书
本科毕业生求职信
2014/06/15 职场文书
Apache Hudi数据布局黑科技降低一半查询时间
2022/03/31 Servers