IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 富文本--angular11版本 -> 正文阅读

[开发工具]富文本--angular11版本

angular11版本
使用的插件:"ngx-quill": "^14.3.0",
参考博文:
https://blog.csdn.net/yw00yw/article/details/90298593
http://www.javashuo.com/article/p-qttexlsn-hn.html
https://www.jianshu.com/p/a7ded48ac974
https://blog.csdn.net/zyxhangiian123456789/article/details/107905019

我的步骤:

1、安装依赖

npm i ngx-quill
npm i quill

2、模块引入

这里的引入,一般放在app.module.ts

import { QuillModule } from 'ngx-quill';

@NgModule({
  declarations: [FileComponent],
  imports: [
    CommonModule,
    ……
    QuillModule.forRoot() // 新版的要这么引入
  ]
})

3、css引入

在 index.html 页面上引用

<link href="https://cdn.quilljs.com/1.2.2/quill.snow.css" rel="stylesheet">

4、使用

/* 直接使用 */
<quill-editor></quill-editor>

/* 模板绑定 */
<quill-editor [(ngModel)]="content"></quill-editor>

5、使用升华-----编辑器配置选项

/* html页面 */
 <quill-editor [(ngModel)]="editorContent" [modules]="config"   [styles]="{height: '250px'}" ></quill-editor>

/* ts页面 */
 config = {
    toolbar: [
      ['bold', 'italic', 'underline', 'strike'],        // toggled buttons
      ['blockquote', 'code-block'],
      [{ header: 1 }, { header: 2 }],               // custom button values
      [{ list: 'ordered' }, { list: 'bullet' }],
      [{ script: 'sub' }, { script: 'super' }],      // superscript/subscript
      [{ indent: '-1' }, { indent: '+1' }],          // outdent/indent
      [{ direction: 'rtl' }],                         // text direction
      [{ size: ['small', false, 'large', 'huge'] }],  // custom dropdown
      [{ header: [1, 2, 3, 4, 5, 6, false] }],
      [{ color: [] }, { background: [] }],          // dropdown with defaults from theme
      [{ font: [] }],
      [{ align: [] }],
      ['clean'],                                         // remove formatting button
      ['link']                         // link and image, video
    ]
  };

6、使用升华-----图片上传前编辑

问题:这个插件的插入图片,得到的是base64,而base64字符串太长太大了,提交时太耗时间
解决:用富文本插入图片时,就调用上传图片的接口,得到这个图片的http地址(接口返回的),放到img的src里,提交时,提交的是这个带有http的images的标签,渲染没问题
大致代码:

<quill-editor [(ngModel)]="editorContent" (onEditorCreated)="EditorCreated($event)"   [styles]="{height: '250px'}" ></quill-editor>
EditorCreated(quill: any): void {
    const toolbar = quill.getModule('toolbar');
    toolbar.addHandler('image', this.imageHandler.bind(this));
    this.editor = quill;
  }


  // tslint:disable-next-line:typedef
  imageHandler() {
    const Imageinput: any = document.createElement('input');
    console.log(Imageinput);
    Imageinput.setAttribute('type', 'file');
    Imageinput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');
    Imageinput.classList.add('ql-image');
    Imageinput.addEventListener('change', () => {
      console.log('上传图片');
      const file1 = Imageinput.files[0];
      const formData: FormData = new FormData();
      formData.append(file1.name, file1);
      if (Imageinput.files != null && Imageinput.files[0] != null) {
      // 图片上传
        this.common.fileUpload('/project/ProjectInfoAttachment/UploadMultipleProfile', formData)
          .subscribe(
            (res: any) => {
              if ( res.body.code === 200) {
              // 得到图片的id ---> res.body.data
                const paras: any = {
                  profileId: res.body.data
                };
                // 得到图片的http地址(我这的接口不能直接给地址,要转换下)
                this.common.GetProjectInfoAttachment(paras).then((res2: any) => {
                  if (res2.code === 200) {
                  // 这个是关键,必写
                    this.editor.insertEmbed(this.editor.getSelection(true).index, 'image', res2.data[0].filepath);
                  }
                }).catch();
              }
            },
            () => {
              this.message.error('上传失败');
            }
          );
      }
    });
    Imageinput.click();
  }

其他扩展,等深入了解之后在写

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 08:09:39  更:2021-11-24 08:11:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:50:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码