分类 技术宅的演示性文稿 下的文章

我们在下载文件的时候,后端同学给我们的一般是二进制的文件。
如果按照普通的请求方式处理,前端也没办法直接下载。
首先,下载获取到二进制流了以后,应该把二进制流转换成Blob类型,然后IE浏览器使用模拟点击的方式去下载,非IE浏览器可以使用navigator浏览器对象的方法来下载文件



- 阅读剩余部分 -

首先说一点,setColumnIndex是可以正常使用的,没有问题!
它接收两个参数,第一个是列,如果只有一列的话,第一个值就为0,第二个值就是你想动态设置的索引值!
我遇到的问题是这样的,首先用this.setData来设置了picker组件里面列的值,但是马上设置它的默认索引的时候出的问题。需要设置两次才能设置上。
这是因为小程序的setData是异步的,第一次设置的时候,picker的值还没有获取设置上去,所以第一次当然就设置不了当前索引。
解决这个问题的方法也很简答。在setData的回调里面做这个就OK了

this.setData({
    show:true,
    pickerName:'workexp',
    columns: values,
    pickerTitle:'选择工作经验'
},function(){
    picker.setColumnIndex(0,this.data.info.workExperience-1)
})

wxs是小程序的一种脚本语言,语法基本跟JS是一致的,不过还是有一些区别。
wxs是解决什么问题的呢?比如我们要过滤后台接口给我们的一些字符串,但是在wxml里面使用{{}}是不能直接用js来进行过滤的。如果我们在js里面单独过滤后赋值给页面,数据多了也不是很方便。wxs就是为了解决这个问题产生的。
我们可以在自己的公用方法里面建立自己的wxs脚本

function filterStrN(str){
    var reg = getRegExp('\n', 'g');
    return str.replace(reg,'')
}

module.exports = {
    filterStrN : filterStrN
}

以上脚本是过滤字符串的n换行符的。

这里需要注意一点。在使用replace进行正则替换的时候,如果写成replace(/n/g, '')这样是无法通过编译的。所以正则我们必须要单独使用getRegExp来生成;

建立好文件以后,在需要使用的wxml文件里面,引入脚本

<wxs src="../../../../public/wxs/filterStr/filterStr.wxs" module="filterStrN" />

需要使用的地方直接使用

{{filterStrN.filterStrN(str)}}

这样就可以直接使用了