解决wangeditor富文本编辑器在element-ui el-dialog不显示问题

本文介绍了如何在Vue中结合El-Dialog组件使用WangEditor编辑器。当El-Dialog打开时,通过`@opened`事件加载编辑器,并创建实例。关闭时,利用`@closed`事件清空编辑器内容,防止数据重叠。通过这种方式,实现了编辑器在对话框中的有效管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(注: import E from "wangeditor") 

1、在el-dialog里添加 @opened=""与 @closed=""

<el-dialog title="文章发布" :visible.sync="dialogFormVisible" @opened="show()" @closed="hide()"  :before-close="handleClose">
            <el-form :model="form">
               <el-form-item label="内容详情:" :label-width="formLabelWidth" class="editorMenu">
                   //wangeditor
                   <div ref="editorElem"></div>
               </el-form-item>
             </el-form>
          </el-dialog>


2、 @opened="show()"

// 对编辑器进行加载  
show() {
      const that = this
      var editor = new E(this.$refs.editorElem)
      // editor.config.showFullScreen = false
      editor.create();
    },


3、@closed="hide()"

//关闭时清空数据避免重叠 
hide() {
      this.$refs.editorElem.innerHTML = ''
      this.editor = null
    },

注:不懂的请在评论区提问或私信,很乐意为您解决代码中的问题

### 如何使用 Element Plus 构建 Admin UI 界面 构建一个基于 Element Plus 的 Admin UI 界面涉及多个方面,包括安装依赖、配置环境以及实际的组件设计与布局。以下是详细的说明: #### 1. 安装和初始化 为了使用 Element Plus,首先需要将其引入到项目中。可以通过 npm 或 yarn 来完成安装。 ```bash npm install element-plus --save ``` 或者, ```bash yarn add element-plus ``` 随后,在项目的入口文件 `main.js` 中导入并注册 Element Plus[^1]。 ```javascript import { createApp } from 'vue'; import App from './App.vue'; import ElementPlus from 'element-plus'; import 'element-plus/dist/index.css'; const app = createApp(App); app.use(ElementPlus); app.mount('#app'); ``` #### 2. 配置 TypeScript 支持(可选) 如果项目使用 TypeScript,则需额外设置一些类型定义支持。确保在 `tsconfig.json` 文件中有如下配置[^2]: ```json { "compilerOptions": { "types": ["element-plus/global"] } } ``` 这一步可以避免潜在的类型错误提示。 #### 3. 设计基础布局 Admin UI 布局通常由顶部导航栏、侧边菜单栏和主要内容区域组成。Element Plus 提供了多种组件来帮助快速搭建这些部分。 ##### (a) 导航栏 通过 `el-menu` 和 `el-header` 实现简单的导航条。 ```html <template> <div class="admin-layout"> <el-container> <!-- 头部 --> <el-header>Header</el-header> <!-- 主体 --> <el-container> <!-- 左侧菜单 --> <el-aside width="200px"> <el-menu :default-active="$route.path" router> <el-menu-item index="/dashboard">Dashboard</el-menu-item> <el-menu-item index="/group-management">Group Management</el-menu-item> </el-menu> </el-aside> <!-- 右侧主体 --> <el-main>Main Content Area</el-main> </el-container> </el-container> </div> </template> ``` ##### (b) 表格展示 对于像组管理这样的功能模块,可以利用 `el-table` 展示数据列表,并结合分页器提升用户体验。 ```html <template> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="date" label="Date" width="180"></el-table-column> <el-table-column prop="name" label="Name" width="180"></el-table-column> <el-table-column prop="address" label="Address"></el-table-column> </el-table> <el-pagination background layout="prev, pager, next" :total="100"></el-pagination> </template> <script> export default { data() { return { tableData: [ { date: '2023-09-01', name: 'John Doe', address: 'New York' }, { date: '2023-09-02', name: 'Jane Smith', address: 'Los Angeles' } ] }; } }; </script> ``` #### 4. 对话框和其他交互控件 当涉及到编辑或新增记录时,可以借助 `el-dialog` 创建弹窗表单。 ```html <template> <el-button type="primary" @click="dialogVisible = true">Add New Group</el-button> <el-dialog v-model="dialogVisible" title="Create a new group"> <el-form :model="form"> <el-form-item label="Group Name"> <el-input v-model="form.name"></el-input> </el-form-item> </el-form> <template #footer> <span class="dialog-footer"> <el-button @click="dialogVisible = false">Cancel</el-button> <el-button type="primary" @click="submitForm()">Confirm</el-button> </span> </template> </el-dialog> </template> <script> export default { data() { return { dialogVisible: false, form: { name: '' } }; }, methods: { submitForm() { console.log('Submitting:', this.form); this.dialogVisible = false; } } }; </script> ``` 以上代码片段展示了如何将常用的功能模块融入到 Admin UI 页面的设计之中。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值