vue+element:富文本編輯框使用


表單設計:

<el-form-item label="內容" label-width="150px">
          <div ref="editor"  style="text-align:left;margin: 5px;width: 800px"> </div>
</el-form-item>

  

  //富文本編輯框
  updated(){
    var editor = new E(this.$refs.editor)
    editor.customConfig.uploadImgShowBase64 = true // 使用 base64 保存圖片
    // 不可修改
    editor.customConfig.uploadImgHeaders = this.headers
    // 自定義文件名,不可修改,修改后會上傳失敗
    editor.customConfig.uploadFileName = 'file'
    editor.customConfig.uploadImgServer = this.imagesUploadApi // 上傳圖片到服務器
    editor.customConfig.onchange = (html) => {
      this.form.content= html
    }
    // var isAdd=this.$route.query.isAdd
    // console.log(isAdd)
    //初始化編輯框
    editor.create()
    //如果是編輯的頁面將內容傳到富文本框中
    editor.txt.html(this.form.content)
    // }
  },

 剛開始我用的是created函數,但是點擊編輯之后,原本內容里面的數據並沒有呈現在編輯的富文本框里,后來將created函數換為類updated函數就可以實現了

原因:在vue的生命周期中,created存在於dom元素未渲染之前,mounted存在於dom元素渲染之后,但是表單內容還是最初時候初始化的時候,而updated則存在於所有數據更新之后,

所以若想要將編輯頁面內容傳到富文本中

editor.txt.html(this.form.content)
前提是this.form.content是有數據的,即使用updated函數就解決了

 ----------------------------更新----------------------------

這種方法雖然可以達到效果,但是在任何數據都有更新的情況都有可能觸發update這個函數,對性能影響不好

解決方法:使用nextTick解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM