zoukankan      html  css  js  c++  java
  • 使用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>
    

      

  • 相关阅读:
    利用JSGrid创建甘特图
    Using the SharePoint 2010 Client Object Model_part_2
    Using the SharePoint 2010 Client Object Model_part_1
    如何利用Featue对特定的文档库或列表添加listviewtoolbar上的button
    SharePoint 2010 工作流解决方案:创建带有关联窗体和启动窗体的工作流
    Wireshark过滤器
    first blog
    DataAdapter.update如果处理自动增长列的数据
    ms sql 中关于spid=2的问题
    利用ADO.NET RowUpdating更新DataRow信息
  • 原文地址:https://www.cnblogs.com/mayiaction/p/11944695.html
Copyright © 2011-2022 走看看