微信小程序技巧之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 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
JavaScript 学习笔记(十三)Dom创建表格
Jan 21 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
Mar 28 Javascript
浅析hasOwnProperty方法的应用
Nov 20 Javascript
jquery实现仿新浪微博评论滚动效果
Aug 06 Javascript
图解prototype、proto和constructor的三角关系
Jul 31 Javascript
微信小程序 Audio API详解及实例代码
Sep 30 Javascript
canvas 实现中国象棋
Feb 17 Javascript
angularJS实现不同视图同步刷新详解
Oct 09 Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 Javascript
解决Can't find variable: SockJS vue项目的问题
Sep 22 Javascript
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
js单例模式详解实例
2013/11/21 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
python3序列化与反序列化用法实例
2015/05/26 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python只用40行代码编写的计算器实例
2017/05/10 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
社区党员先进事迹
2014/01/22 职场文书
总经理司机职责
2014/02/02 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
百日安全活动总结
2014/05/04 职场文书
七夕活动策划方案
2014/08/16 职场文书
师德承诺书2015
2015/04/28 职场文书