鍍金池/ 問答/網(wǎng)絡安全  HTML/ iview中如何實現(xiàn),點擊按鈕后開始上傳附件

iview中如何實現(xiàn),點擊按鈕后開始上傳附件

1.使用iview中的upload組件,選擇好文件后,點擊“上傳”按鈕才開始上傳
2.iview的upload api文檔有說明,

before-upload 上傳文件之前的鉤子,參數(shù)為上傳的文件,若返回 false 或者 Promise 則停止上傳

所以我的想法是,通過before-upload回調(diào)函數(shù)中返回一個promise對象,點擊上傳后,執(zhí)行promise的resolve方法,這樣就可以實現(xiàn)點擊后上傳

目前的問題是,點擊“上傳”按鈕,如何執(zhí)行Promise的resolve方法,vue中如何實現(xiàn)

upload(rawFile, file) {
  this.$refs.input.value = null;
  if (!this.beforeUpload) {
    return this.post(rawFile);
  }
  const before = this.beforeUpload(rawFile);
  if (before && before.then) {
    before.then(processedFile => {
      if (Object.prototype.toString.call(processedFile) === '[object File]') {
        this.post(processedFile);
      } else {
        this.post(rawFile);
      }
    }, () => {
      this.onRemove(null, rawFile);
    });
  } else if (before !== false) {
    this.post(rawFile);
  } else {
    this.onRemove(null, rawFile);
  }
},
回答
編輯回答
爆扎

https://github.com/oyv1cent/i...

不是基于promise的 不過你可以參考一下

2018年2月23日 18:34
編輯回答
陌璃

你可以把返回的promise存儲到一個data里把, 再通過click參數(shù)傳遞給按鈕點擊事件。

2017年10月15日 20:56