背景:
????????公司需要添加圖文資料失仁,于是開搞umeditor,因為新?lián)Q的ng7框架理郑,很多組件還不熟悉,在摸索中屎暇。
????????開始一直顯示不出來編輯器界面,通過一番百度驻粟,發(fā)現(xiàn)文章寥寥幾篇根悼,好在有一篇文章給到幫助,需要去ueditor官網(wǎng)下載文件并放入項目格嗅,照做之后番挺,富文本編輯器可以正常加載并初步使用了唠帝。(開始一直以為npm引入就夠用了屯掖,囧)
????????可以用排版之后,就到第二個重點(diǎn)襟衰,上傳圖片了贴铜,因為以前配過ng1的umeditor,當(dāng)時就各種資料不清晰搞的很費(fèi)勁瀑晒,兩三天才搞定绍坝,后來沒做筆記基本忘完了。
????????上傳圖片第一件事就是修改圖片上傳url苔悦,改完之后轩褐,發(fā)現(xiàn),官方默認(rèn)的action事件玖详,報400把介,跟成功的上傳對比后發(fā)現(xiàn)是沒有傳入file參數(shù),然后就去找解決方法蟋座。
????????其中一篇文章說是修改上傳方法拗踢,將action改為ajax上傳,翻看源碼發(fā)現(xiàn)拖動上傳圖片就是用的ajax向臀,一番嘗試后巢墅,終于上傳成功。
操作內(nèi)容
????????注釋submit事件
????????創(chuàng)建xhr創(chuàng)建formdata? ? 為formdata添加file?被上傳文件(image.js:234行)
????????將返回結(jié)果用json解析(這里看實際情況券膀,主要是為了方便使用返回內(nèi)容的參數(shù))
????????然后傳入me.uploadComplete(res)
????????去除uploadComplete里的eval方法
????????uploadComplete成功的話觸發(fā)Base.callback()
坑點(diǎn)
????????callback里最外層的判斷要改君纫,默認(rèn)判斷state == ‘SUCCESS’
????????這里是因為公司后端返回了我們公司的響應(yīng)結(jié)構(gòu),沒有按照ueditor想要的格式返回芹彬。
解決方法:
????????1庵芭、把對應(yīng)需要的值一個一個正確的給到。
????????2雀监、把拿到的response改成ueditor想要的格式再傳給callback双吆。
額外的小坑
????????取上傳圖片時為了方便給input寫了id眨唬,實際每次上傳成功后是會銷毀上次的input,導(dǎo)致id選擇器在連續(xù)上傳圖片時被銷毀而取不到文件好乐。
解決方案:
????????直接用jq找input:file的第一個匾竿,拿圖片內(nèi)容即可,無論傳多少圖片都行了蔚万。
參考資料:
????????https://www.cnblogs.com/guofan/p/10065138.html
????????https://www.cnblogs.com/tangchun/p/8796166.html
最終效果: