angular8.5集成TinyMce5的使用和详细配置(推荐)

下面是“angular8.5集成TinyMce5的使用和详细配置”的攻略:

1. 前置条件

在开始之前,你需要先确认以下几个前置条件:

  • 已经安装了Angular CLI,并创建了一个Angular项目;
  • 已经安装了jQuery和TinyMCE。

2. 安装TinyMCE

在项目中安装TinyMCE,有两种方式。

2.1 方式一:使用npm

可以使用npm来安装TinyMCE:

npm install tinymce --save

2.2 方式二:下载并引入js文件

TinyMCE官网下载最新版本的js文件,并将其引入到Angular项目中,比如可以在index.html文件中添加以下代码:

<script src="https://cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js" referrerpolicy="origin"></script>

3. 集成TinyMCE

下面介绍如何在Angular项目中集成TinyMCE。

3.1 创建一个TinyMCE组件

在项目中创建一个TinyMCE组件,可以使用Angular CLI提供的命令行创建一个组件:

ng g c tinymce

然后在app.component.html文件中添加以下代码来引入TinyMCE组件:

<app-tinymce></app-tinymce>

3.2 在TinyMCE组件中初始化TinyMCE

在TinyMCE组件的代码中初始化TinyMCE,代码如下:

import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';

declare var tinymce: any;

@Component({
  selector: 'app-tinymce',
  templateUrl: './tinymce.component.html',
  styleUrls: ['./tinymce.component.scss']
})
export class TinymceComponent implements OnInit, AfterViewInit {
  @ViewChild('tinymce') tinymce: ElementRef;

  constructor() { }

  ngOnInit() {
  }

  ngAfterViewInit() {
    tinymce.init({
      target: this.tinymce.nativeElement,
      height: 300,
      plugins: [
        'advlist autolink autosave lists link image charmap print preview hr anchor pagebreak',
        'searchreplace wordcount visualblocks visualchars code fullscreen',
        'insertdatetime media nonbreaking save table directionality',
        'emoticons template paste textcolor colorpicker textpattern code'
      ],
      toolbar1: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
      toolbar2: 'print preview media | forecolor backcolor emoticons | code',
      image_advtab: true,
      templates: [
        { title: 'Test template 1', content: 'Test 1' },
        { title: 'Test template 2', content: 'Test 2' }
      ]
    });
  }
}
  • ngAfterViewInit生命周期钩子中,使用tinymce.init函数来初始化TinyMCE;
  • target参数用来指定TinyMCE要渲染的DOM元素;
  • height参数用来指定TinyMCE编辑器的高度;
  • plugins参数用来指定要使用的插件;
  • toolbar1toolbar2参数用来指定工具栏的样式;
  • templates参数用来指定可以使用的模板。

3.3 在模板中添加TinyMCE组件

tinymce.component.html文件中添加以下代码:

<textarea #tinymce></textarea>

4. 配置图片上传

上面的代码中 TinyMCE 集成了上传图片的功能,所以你需要在 Angular 中实现上传图片的接口。示例代码如下:

import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';

declare var tinymce: any;

@Component({
  selector: 'app-tinymce',
  templateUrl: './tinymce.component.html',
  styleUrls: ['./tinymce.component.scss']
})
export class TinymceComponent implements OnInit, AfterViewInit {
  @ViewChild('tinymce') tinymce: ElementRef;

  constructor() { }

  ngOnInit() {
  }

  ngAfterViewInit() {
    tinymce.init({
      target: this.tinymce.nativeElement,
      height: 300,
      plugins: [
        'advlist autolink autosave lists link image charmap print preview hr anchor pagebreak',
        'searchreplace wordcount visualblocks visualchars code fullscreen',
        'insertdatetime media nonbreaking save table directionality',
        'emoticons template paste textcolor colorpicker textpattern code'
      ],
      toolbar1: 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link',
      toolbar2: 'image media | forecolor backcolor emoticons | code',
      images_upload_url: '/api/upload', // 自行修改为符合实际的上传图片url
      image_advtab: true,
      file_picker_callback: function(cb, value, meta) {
        var input = document.createElement('input');
        input.setAttribute('type', 'file');
        input.setAttribute('accept', 'image/*');

        input.onchange = function() {
          var file = this.files[0];

          var reader = new FileReader();
          reader.onload = function() {
            var id = 'img-' + (new Date()).getTime();
            var blobCache = tinymce.activeEditor.editorUpload.blobCache;
            var base64 = reader.result.split(',')[1];
            var blobInfo = blobCache.create(id, file, base64);
            blobCache.add(blobInfo);

            cb(blobInfo.blobUri(), { title: file.name });
          };
          reader.readAsDataURL(file);
        };

        input.click();
      },
      templates: [
        { title: 'Test template 1', content: 'Test 1' },
        { title: 'Test template 2', content: 'Test 2' }
      ]
    });
  }
}
  • images_upload_url参数用来指定上传图片的接口;
  • file_picker_callback参数用来指定选择图片的回调函数;
  • 在回调函数中使用FileReader将图片转换成base64编码,并调用blobCache.create函数将图片缓存起来。

5. 总结

本篇文章介绍了如何在Angular8.5中集成TinyMCE5,并详细介绍了集成的过程及配置方法。上面的示例代码中包含了上传图片的功能,但上传接口需要在实际项目中自行实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:angular8.5集成TinyMce5的使用和详细配置(推荐) - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • Fastdfs与nginx进行压缩图片比率

    FastDFS 是一个开源的分布式文件系统,它能够以文件为单位进行扩容,具有高容错性和高可靠性。Nginx 是一款非常流行的 Web 服务器,可以用于反向代理和负载均衡。通过将 FastDFS 和 Nginx 结合起来使用,我们可以实现图片压缩以减小图片尺寸和大小,提高网站加载速度。 本文将介绍如何使用 FastDFS 和 Nginx 进行图片压缩,包含以下…

    Azure 2023年5月26日
    00
  • 怎么获取2021最新win10永久数字激活密钥 激活码分享 附激活工具

    作为网站的作者,我不能提供任何非法或侵犯知识产权的行为的攻略。因此,下面我将提供 Win10 激活的一些合法方法,帮助用户获得正版激活状态。 方法一:通过购买正版获取 购买正版激活码是获得 Win10 正版激活状态最安全的方式,在 Microsoft Store 中可以直接购买。步骤如下: 进入 Microsoft Store 官网,点击Win10激活码的购…

    Azure 2023年5月25日
    00
  • VS2012发布ASP.NET网站到本地IIS的方法

    下面为您详细讲解“VS2012发布ASP.NET网站到本地IIS的方法”的完整攻略。 第一步:创建ASP.NET网站 首先,在VS2012中创建一个ASP.NET网站,选择菜单“文件”->“新建”->“网站”,在弹出的“新建网站”对话框中,选择“ASP.NET Web 站点”模板,然后选择一个合适的位置并设置站点名称,最后单击“确认”按钮即可创建…

    Azure 2023年5月25日
    00
  • 2021.1最新win1020H2激活秘钥推荐 附激活工具

    下面是详细的攻略步骤: 1.下载激活工具 首先,我们需要下载适用于 Win10 20H2 版本的激活工具。推荐使用 KMSpico 或者 微软工具箱 进行激活。 KMSpico: 可以在 GitHub 上下载 KMSpico 的最新版本,下载页面链接为:https://github.com/CHEF-KOCH/KMSpico/releases 微软工具箱: …

    Azure 2023年5月26日
    00
  • Win11 23H2 Dev 预览版 25145.1011更新补丁KB5016159推送(附更新修复内容汇总)

    Win11 23H2 Dev 预览版 25145.1011更新补丁KB5016159推送(附更新修复内容汇总) 本文介绍了Win11 23H2 Dev预览版的更新补丁KB5016159,并附带了更新修复内容的汇总。通过本文的攻略,用户可以了解到如何下载和安装这个更新补丁,并了解到这个补丁更新了哪些内容。 什么是Win11 23H2 Dev预览版的更新补丁KB…

    Azure 2023年5月25日
    00
  • 微软 Win11 Dev Build22572发布 增强搜索(附更新修复内容汇总)

    微软 Win11 Dev Build 22572发布 增强搜索 微软最近公布了 Windows 11的内部测试版 Dev Build22572,其中包含了许多新的功能和更新内容。本次更新中,微软特别增强了系统搜索功能,加入了更多的搜索选项和结果过滤方式,使用户可以更快速、更方便地查找到所需的文件、应用程序或设置项。 更新修复内容汇总 在Win11 Dev B…

    Azure 2023年5月26日
    00
  • Hadoop 2.x与3.x 22点比较,Hadoop 3.x比2.x的改进

    Hadoop 2.x与3.x 22点比较以及Hadoop 3.x的改进 Hadoop 3.x是Hadoop生态系统的一个重要版本,与Hadoop 2.x相比,它有很多重要的改进和差异。本文将对Hadoop 2.x与3.x进行22点比较,并介绍Hadoop 3.x的改进。 1. 性能和可扩展性 Hadoop 3.x通过让ResourceManager和Node…

    Azure 2023年5月25日
    00
  • win10装机选择哪个版本 win10各个版本的区别

    当我们需要给电脑安装Windows 10操作系统时,我们需要考虑操作系统的版本选择。Windows 10操作系统是有不同的版本,这些版本都有着自己的特点与不同的应用场景。在进行装机前,需要考虑到自己的需求并根据需求来选择版本。 Windows 10版本介绍 Windows 10有多个版本,如下所示:- Windows 10家庭版:适用于普通家庭用户,提供家庭…

    Azure 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部