• 使用iview文件上传的钩子函数时传递自定义参数问题


    最近在改造项目的文件上传框架的时候,使用了iview的文件上传功能。

    iview文件上传感觉还是很好用的,使用起来也比较灵活,官方提供了很多的钩子函数让我们来使用

    文档中只是说了这些方法有哪些参数,但是项目中发现有时候的确必须传递一些自定义的参数。

    官方文档中我并未看到解决办法(可能是没找到吧)

    在网友给的解决方案中,看到了使用es6的箭头函数能解决这个问题,下边是以on-error为例,代码如下:

    其中error,file,fileList这三个是iview官方给的参数,后边我自己加了个字符串作为自定义参数(error,file,fileList这些名称无所谓,顺序要按官方文档来,如果你只要一个error,可以只写一个error)

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>iview example</title>
        <link rel="stylesheet" type="text/css" href="http://unpkg.com/iview/dist/styles/iview.css">
        <script type="text/javascript" src="http://vuejs.org/js/vue.min.js"></script>
        <script type="text/javascript" src="http://unpkg.com/iview/dist/iview.min.js"></script>
    </head>
    <body>
    <div id="app">
        <upload :on-error="(error, file, fileList)=> test1(error, file, fileList,'test')">
            <i-button icon="ios-cloud-upload-outline">上传文件</i-button>
        </upload>
    </div>
    <script>
        window.app = new Vue({
            el: '#app',
            methods: {
                test1: function(error, file, fileList,mydata){
                 debugger
                }
            }
        })
      </script>
    </body>
    </html>

    这样就顺利的接收到了自定义参数和官网提供的参数,如下图:上边是自定义的,下边是iview提供的参数。

     

    如果需要兼容低版本浏览器不能识别es6的问题,可以将es6的写法替换成旧版写法。效果是一样的,如下:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>iview example</title>
        <link rel="stylesheet" type="text/css" href="http://unpkg.com/iview/dist/styles/iview.css">
        <script type="text/javascript" src="http://vuejs.org/js/vue.min.js"></script>
        <script type="text/javascript" src="http://unpkg.com/iview/dist/iview.min.js"></script>
    </head>
    <body>
    <div id="app">
        <upload :on-error="(function(error,file,fileList){return test1(error,file,fileList,'test')})">
            <i-button icon="ios-cloud-upload-outline">上传文件</i-button>
        </upload>
    </div>
    <script>
        window.app = new Vue({
            el: '#app',
            methods: {
                test1: function(error, file, fileList,mydata){
                    debugger
                }
            }
        })
      </script>
    </body>
    </html>
    

      

  • 相关阅读:
    BZOJ3238 [Ahoi2013]差异 SA+单调栈
    BZOJ2754 [SCOI2012]喵星球上的点名 SA+莫队+树状数组
    Luogu P3251 [JLOI2012]时间流逝 期望dp
    Luogu P3962 [TJOI2013]数字根 st
    BZOJ3619 [Zjoi2014]璀灿光华 构造+dfs
    Codeforces 990G 点分治+暴力
    express基础项目创建
    Node.js 中使用 ES6 中的 import / export 的方法大全
    bootstrap 辅助工具
    python实现FTP服务器
  • 原文地址:https://www.cnblogs.com/mayiaction/p/11944695.html
Copyright © 2020-2023  润新知