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日

相关文章

  • 微软Visual Studio 2017正式版发布 宇宙第一开发工具

    微软Visual Studio 2017正式版发布 宇宙第一开发工具 简介 Visual Studio 2017 是微软的一款全面集成化的开发环境,能够满足不同语言的开发需求,包括但不限于 C#, C++, JavaScript 等语言的开发,同时还集成了 Git、Azure 等工具服务。Visual Studio 2017 被誉为“宇宙第一开发工具”。 下…

    Azure 2023年5月25日
    00
  • kubernetes对象Volume用法详解

    Kubernetes对象Volume用法详解 在 Kubernetes 中,Volume 用来在 Pod 和容器之间共享和持久化数据。它抽象出来了不同类型存储的实际细节和工作方式,并为容器和 Pod 提供了统一的接口。 本文将详细讲解 Kubernetes Volume 的用法和常见场景,以及两个示例说明。 Volume 概述 Volume 在 Kubern…

    Azure 2023年5月25日
    00
  • 2021.2最新win10专业版激活秘钥推荐 附激活工具

    下面就让我来详细讲解一下“2021.2最新win10专业版激活秘钥推荐 附激活工具”的完整攻略。 介绍 我们首先需要了解一下什么是win10专业版,win10专业版是一款功能更加强大的操作系统,比起win10家庭版,它具有更加丰富的功能和更高的安全性能。因此,很多用户都会选择使用win10专业版。然而,很多用户在安装win10专业版之后,发现系统提示需要激活…

    Azure 2023年5月26日
    00
  • RemoteIE怎么用?微软RemoteIE安装和使用教程

    远程浏览器RemoteIE简介 RemoteIE是一款由微软提供的Windows虚拟机远程访问服务,可让用户从Windows设备上的Internet Explorer浏览器中访问来自其他平台和设备的网站。RemoteIE的安装和使用相对简单,本文将为您详细讲解。 RemoteIE的安装 访问RemoteIE官方网站(https://remote.modern…

    Azure 2023年5月25日
    00
  • Win11 Build 22621.1483预览版发布推送补丁KB5023778(附更新修复内容汇总)

    Win11 Build 22621.1483预览版发布推送补丁KB5023778攻略 简介 Microsoft在2022年1月11日发布了Win11 Build 22621.1483预览版推送的补丁KB5023778。这篇攻略介绍了该补丁的更新修复内容,并提供了更新该补丁的方法。 更新修复内容 该补丁主要解决了Win11 Build 22621.1483预览…

    Azure 2023年5月25日
    00
  • .NET6系列之微软正式宣布Visual Studio 2022

    .NET6系列之微软正式宣布Visual Studio 2022 简介 在2021年9月中旬,微软公司正式宣布将于11月8日发布Visual Studio 2022正式版。这是一款用于Windows和MacOS操作系统的综合性开发工具,主要用于开发.NET平台上的应用程序,包括桌面、Web、移动和游戏应用开发等方面。Visual Studio 2022是.N…

    Azure 2023年5月25日
    00
  • Visual Studio Code如何设置中文?VS Code使用详细图文教程

    Visual Studio Code如何设置中文?VS Code使用详细图文教程 Visual Studio Code 是当前最流行的一款跨平台轻量级编辑器。它支持多种编程语言和插件,并且有着良好的用户体验。对于习惯使用中文的用户来说,最好把 VS Code 的界面和菜单设置为中文。下面是设置 Visual Studio Code 中文界面的详细步骤。 步骤…

    Azure 2023年5月25日
    00
  • 使用C#来编写一个异步的Socket服务器

    首先,创建一个异步Socket服务器需要进行以下步骤: 创建Socket监听端口 等待连接 接收连接并分配线程进行处理 给客户端发送信息 关闭连接 下面我们来一步步讲解具体实现。 创建Socket监听端口 创建Socket监听端口相关的代码如下所示: using System.Net; using System.Net.Sockets; public voi…

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