vue里面使用wangEditor

我这里用的是脚手架开发的,为了能够灵活的使用,我将主要内容写在了一个组件里,进行调用,根据子父传值得到富文本输入的内容

组件

<template>
  <!-- 子组建 -->
  <div class="editor">
    <div ref="toolbar" class="toolbar">  <!-- 头部 -->
    </div>
    <div ref="editor" class="editor-text">  <!-- 内容 -->
    </div>
  </div>
</template>

<script>
import E from 'wangeditor' //引用

export default {
  name: 'Editorbar',
  data () {
    return {
      editor: null,
      content:'',//内容
    }
  },
  watch: {
    isClear (val) {
      // 触发清除文本域内容
      if (val) {
        this.editor.txt.clear();
      }
    }
  },
  props: {
    isClear: {
      type: Boolean,
      default: false
    }
  },
  mounted () {
    this.seteditor();
  },
  methods: {
    seteditor () {
      this.editor = new E(this.$refs.toolbar, this.$refs.editor);

      this.editor.customConfig.uploadImgShowBase64 = true; // base 64 存储图片
      this.editor.customConfig.uploadImgServer = '';// 配置服务器端地址
      this.editor.customConfig.uploadImgHeaders = {      };// 自定义 header
      this.editor.customConfig.uploadFileName = ''; // 后端接受上传文件的参数名
      this.editor.customConfig.uploadImgMaxSize = 2 * 1024 * 1024; // 将图片大小限制为 2M
      this.editor.customConfig.uploadImgMaxLength = 6; // 限制一次最多上传 3 张图片
      this.editor.customConfig.uploadImgTimeout = 3 * 60 * 1000; // 设置超时时间

      // 配置菜单
      this.editor.customConfig.menus = [
        'head', // 标题
        'bold', // 粗体
        'fontSize', // 字号
        'fontName', // 字体
        'italic', // 斜体
        'underline', // 下划线
        'strikeThrough', // 删除线
        'foreColor', // 文字颜色
        'backColor', // 背景颜色
        'link', // 插入链接
        'list', // 列表
        'justify', // 对齐方式
        'quote', // 引用
        'emoticon', // 表情
        'image', // 插入图片
        'table', // 表格
        'video', // 插入视频
        'code', // 插入代码
        'undo', // 撤销
        'redo' // 重复
      ]

      this.editor.customConfig.uploadImgHooks = {
        fail: (xhr, editor, result) => {
          // 插入图片失败回调
        },
        success: (xhr, editor, result) => {
          // 图片上传成功回调
        },
        timeout: (xhr, editor) => {
          // 网络超时的回调
        },
        error: (xhr, editor) => {
          // 图片上传错误的回调
        },
        customInsert: (insertImg, result, editor) => {
          // 图片上传成功,插入图片的回调
        }
      }
      this.editor.customConfig.onchange = (html) => {
        this.content = html;
        this.$emit('content',html);//将内容上传到父组件里
      },
      // 创建富文本编辑器
      this.editor.create();
    }
  }
}
</script>

<style scoped>
.editor {
    border: 1px solid #ccc;
}
.toolbar {
    border-bottom: 1px solid #ccc;
}
.editor-text{
    min-height: 500px;
}
</style>

父组件调用

<template>
  <div>
    <editor :isClear="isClear" @content="get_content"></editor>
  </div>
</template>

<script>
import editor from '../components/editor'

export default {
  data () {
    return {
      isClear: false
    }
  },
  methods:{
    //获取到子组件传过来的值
    get_content(con){
        console.log(con);//打印内容
    }
  },
  components: {
    editor
  }
}
</script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、了解Vue.js 1.1.1 Vue.js是什么? 简单小巧、渐进式、功能强大的技术栈 1.1.2 为什么学习...
    蔡华鹏阅读 3,382评论 0 3
  • 怎么描述现在的心情呢,悲伤吧,嗯,就这个词。 我最近的状况一点都不好,可能是因为论文都写完了,也没什么兼职可以做,...
    平生君阅读 398评论 0 0
  • 2017年1月9日,张小龙在2017微信公开课Pro上发布的小程序正式上线。当天,各大新闻媒体均浩浩荡荡的宣传微信...
    会fly的鸡腿阅读 553评论 4 0
  • 我们都知道有些名贵的茶叶都价格不菲,但是你能想到有下面这么贵吗?让我们从便宜的开始,盘点一下最土豪的10款茶叶。 ...
    茶商网阅读 595评论 0 0
  • 今天中午先生抱怨我不督促娃弹琴,说别的小朋友后学,都比我家的弹的好,都是别人家妈妈督促的好,说我这样下去,娃是学不...
    hl越望越远阅读 154评论 0 0