微信小程序技巧之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 相关文章推荐
jquery对表单操作2
Apr 06 Javascript
jQuery实现tag便签去重效果的方法
Jan 20 Javascript
jQuery通过Ajax返回JSON数据
Apr 28 Javascript
每天一篇javascript学习小结(String对象)
Nov 18 Javascript
原生js和jquery分别实现横向导航菜单效果
May 13 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
angular第三方包开发整理(小结)
Apr 19 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
ztree加载完成后显示勾选节点的实现代码
Oct 22 Javascript
vue.js仿hover效果的实现方法示例
Jan 28 Javascript
JS算法题之查找数字在数组中的索引位置
May 15 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中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
FireFox JavaScript全局Event对象
2009/06/14 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
JsRender for index循环索引用法详解
2014/10/31 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
Python configparser模块常用方法解析
2020/05/22 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
大学生自荐书范文
2013/12/10 职场文书
经济职业学院毕业生自荐书
2014/03/17 职场文书
信息员培训方案
2014/06/12 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
一份文言文检讨书
2014/09/13 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技