最近在改造項目的文件上傳框架的時候,使用了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>