资讯专栏INFORMATION COLUMN

angular引入富文本ngx-quill,自定义图片上传(解决Can't resolve

honmaple / 2568人阅读

1. 安装依赖

</>复制代码

  1. npm i ngx-quill
  2. npm i quill

ps:一定要安装 quill ,不然ngx-quill会报Can"t resolve "quill" in xxxx, 因为ngx-quill内部引用了quill

2. 使用 1. 引用

</>复制代码

  1. /* 在自己的`NgModule``imports`里面引用,我是在`RoutesModule`里引用的 */
  2. import { QuillModule } from "ngx-quill";
  3. @NgModule({
  4. imports: [
  5. ...
  6. QuillModule.forRoot()
  7. ...
  8. ]
  9. })
2. 使用组件

</>复制代码

  1. /* 直接使用 */
  2. /* 模板绑定 */
  3. /* 响应式表单 */

点击查看quill配置地址

3. css 样式引用

</>复制代码

  1. /* 在 index.html 页面上引用 */

点击查看其他css版本

3. 自定义图片上传

给组件添加 onEditorCreated 方法,获取quill对象,并绑定自定义图片上传函数

</>复制代码

  1. html:
  2. ts:
  3. // 富文本初始化钩子函数
  4. EditorCreated(quill: any) {
  5. // 获取quill的工具栏对象
  6. const toolbar = quill.getModule("toolbar");
  7. // 给工具栏的image功能添加自定义函数,注意this指向问题
  8. toolbar.addHandler("image", this.imageHandler.bind(this));
  9. // 保存quill对象
  10. this.editor = quill;
  11. }
  12. // 自定义图片上传功能
  13. // 创建一个input对象来实现上传,除了下面的自定义代码区域,其他为官方代码
  14. imageHandler() {
  15. const Imageinput = document.createElement("input");
  16. Imageinput.setAttribute("type", "file");
  17. Imageinput.setAttribute("accept", "image/png, image/gif, image/jpeg, image/bmp"); // 可改上传图片格式
  18. Imageinput.classList.add("ql-image");
  19. Imageinput.addEventListener("change", () => {
  20. const file = Imageinput.files[0];
  21. if (Imageinput.files != null && Imageinput.files[0] != null) {
  22. /* 自定义代码 */
  23. .......
  24. .......
  25. // 下面这句话必填,成功后执行 (imageUrl 为上传成功后的图片完整路径)
  26. this.editor.insertEmbed(this.editor.getSelection(true).index, "image", imageUrl);
  27. }
  28. });
  29. Imageinput.click();
  30. }

无注释复制粘贴版本

</>复制代码

  1. html:
  2. ts:
  3. EditorCreated(quill: any) {
  4. const toolbar = quill.getModule("toolbar");
  5. toolbar.addHandler("image", this.imageHandler.bind(this));
  6. this.editor = quill;
  7. }
  8. imageHandler() {
  9. const Imageinput = document.createElement("input");
  10. Imageinput.setAttribute("type", "file");
  11. Imageinput.setAttribute("accept", "image/png, image/gif, image/jpeg, image/bmp");
  12. Imageinput.classList.add("ql-image");
  13. Imageinput.addEventListener("change", () => {
  14. const file = Imageinput.files[0];
  15. if (Imageinput.files != null && Imageinput.files[0] != null) {
  16. .......
  17. this.editor.insertEmbed(this.editor.getSelection(true).index, "image", 图片完整路径);
  18. }
  19. });
  20. Imageinput.click();
  21. }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105485.html

相关文章

  • angular引入文本ngx-quill定义图片上传解决Can&#039;t resolve

    1. 安装依赖 npm i ngx-quill npm i quill ps:一定要安装 quill ,不然ngx-quill会报Cant resolve quill in xxxx, 因为ngx-quill内部引用了quill。 2. 使用 1. 引用 /* 在自己的`NgModule`的`imports`里面引用,我是在`RoutesModule`里引用的 */ import { Quil...

    willin 评论0 收藏0
  • angular引入文本ngx-quill定义图片上传解决Can&#039;t resolve

    1. 安装依赖 npm i ngx-quill npm i quill ps:一定要安装 quill ,不然ngx-quill会报Cant resolve quill in xxxx, 因为ngx-quill内部引用了quill。 2. 使用 1. 引用 /* 在自己的`NgModule`的`imports`里面引用,我是在`RoutesModule`里引用的 */ import { Quil...

    hlcc 评论0 收藏0
  • 手摸手,带你用vue撸后台 系列三(实战篇)

    摘要:社区的认可目前已经是相关最多的开源项目了,体现出了社区对其的认可。监听事件手动维护列表这样我们就简单的完成了拖拽排序。 完整项目地址:vue-element-admin 系类文章一:手摸手,带你用vue撸后台 系列一(基础篇)系类文章二:手摸手,带你用vue撸后台 系列二(登录权限篇)系类文章三:手摸手,带你用vue撸后台 系列三(实战篇)系类文章四:手摸手,带你用vue撸后台 系列...

    Channe 评论0 收藏0
  • 手摸手,带你用vue撸后台 系列三(实战篇)

    摘要:社区的认可目前已经是相关最多的开源项目了,体现出了社区对其的认可。监听事件手动维护列表这样我们就简单的完成了拖拽排序。 完整项目地址:vue-element-admin 系类文章一:手摸手,带你用vue撸后台 系列一(基础篇)系类文章二:手摸手,带你用vue撸后台 系列二(登录权限篇)系类文章三:手摸手,带你用vue撸后台 系列三(实战篇)系类文章四:手摸手,带你用vue撸后台 系列...

    zgbgx 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<