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日

相关文章

  • Windows Server vNext Build 25346 预览版发布

    Windows Server vNext Build 25346 预览版发布 最近微软发布了 Windows Server vNext Build 25346 预览版,这是一款最新的 Windows Server 系统,在该系统中包含了许多新的功能和更新,本篇文章将为您提供该系统的详细攻略。 1. 下载 Windows Server vNext Build …

    Azure 2023年5月25日
    00
  • Win10预览版 Build 21322正式发布(附更新内容)

    Win10预览版 Build 21322正式发布(附更新内容) 微软在最近发布了Win10预览版 Build 21322,这篇文章将介绍该版本的更新内容以及如何下载安装。 更新内容 Win10预览版 Build 21322的主要更新内容包括: 新增了一个新功能叫做“News and Interests”,它可以在任务栏上显示实时新闻和感兴趣的信息。 增强了X…

    Azure 2023年5月25日
    00
  • Win10 22H2(19045.2670)更新补丁KB5022906发布(附更新修复内容汇总)

    Win10 22H2(19045.2670)更新补丁KB5022906发布(附更新修复内容汇总)攻略 本文主要介绍Win10 22H2(19045.2670)更新补丁KB5022906的发布及更新修复内容汇总的相关信息。 更新补丁介绍 Win10 22H2(19045.2670)更新补丁KB5022906是微软近期发布的重要更新补丁,该更新主要修复了一些安全…

    Azure 2023年5月25日
    00
  • 微软原版win10系统怎么激活 2021.3最新原版win10激活秘钥推荐 含激活工具

    微软原版win10系统激活攻略 概述 微软原版win10系统是Windows操作系统的最新版本,它提供了更先进的功能和更好的性能。对于很多用户来说,激活win10系统是必要的,否则将无法使用一些重要的功能。本文将为大家提供2021年3月最新的win10激活秘钥推荐,并且分享一些激活工具,让大家快速轻松的完成win10系统的激活。 详细步骤 步骤一:下载Win…

    Azure 2023年5月25日
    00
  • Win10 21H1 Build 19043.1200(KB5005101)预览版更新了哪些内容(附更新日志)

    Win10 21H1 Build 19043.1200(KB5005101)预览版更新说明 Win10 21H1 Build 19043.1200(KB5005101)预览版于2021年8月18日推出,此次更新主要是针对Windows操作系统的稳定性和性能做出了优化和改进,以下是本次更新的详细内容。 更新日志 修复了音频和视频相关问题。此次更新修复了某些设备…

    Azure 2023年5月26日
    00
  • Win11 Beta 22621.1325、22623.1325更新补丁KB5022914推送(附更新修复内容汇总)

    Win11 Beta 22621.1325、22623.1325更新补丁KB5022914推送 最近,Win11 Beta 22621.1325和22623.1325的更新补丁KB5022914已经推送,为用户提供了新的功能和bug修复。以下是这个更新补丁的详细说明,包括修复的问题、如何安装补丁以及常见问题解决方法。 更新修复内容汇总: 修复了一些Win11…

    Azure 2023年5月26日
    00
  • Win11 KB5019961推送 Win11 预览版22000.1219更新内容汇总

    Win11 KB5019961推送 Win11 预览版22000.1219更新内容汇总 本文将逐一详细讲解Win11 KB5019961推送 Win11 预览版22000.1219的更新内容,以及更新的方法。 更新内容 Win11 KB5019961更新的主要内容包括: 解决了已知的漏洞和安全问题 修复了一些潜在的问题,如蓝牙设备无法连接等 改进了系统的稳定…

    Azure 2023年5月25日
    00
  • Win10 20H2 Beta预览版19042.541怎么下载KB4577063更新?

    下面是详细的攻略: 步骤一:确定操作系统版本 在下载更新前,我们需要先确定自己当前的操作系统版本是否适用于该更新。Win10 20H2 Beta预览版19042.541的更新-KB4577063,是适用于Windows 10 Version 20H2以下的版本。具体的版本号可以通过以下步骤进行查看: 点击“开始菜单”,选择“设置”。 点击“系统”,再点击“关…

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