微信小程序技巧之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 相关文章推荐
firefox事件处理之自动查找event的函数(用于onclick=foo())
Aug 05 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
jquery实现可自动判断位置的弹出层效果代码
Oct 12 Javascript
Bootstrap每天必学之媒体对象
Nov 30 Javascript
6种javascript显示当前系统时间代码
Dec 01 Javascript
javascript先序遍历DOM树的方法
Feb 27 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
微信公众号菜单配置微信小程序实例详解
Mar 31 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
小程序click-scroll组件设计
Jun 18 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
php获取QQ头像并显示的方法
2014/12/23 PHP
php实现的xml操作类
2016/01/15 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
javascript event 事件解析
2011/01/31 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
python爬取淘宝商品详情页数据
2018/02/23 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
应届生法律顾问求职信
2013/11/19 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
党员查摆剖析材料
2014/10/10 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书