Using the TinyMCE package with the Angular framework
The Official TinyMCE Angular component integrates TinyMCE into Angular projects. This procedure creates a basic Angular application containing a TinyMCE editor.
This procedure uses standalone components. If using Angular Modules, see Angular Modules.
For examples of the TinyMCE Angular integration, visit the tinymce-angular storybook.
Prerequisites
This procedure requires Node.js (and npm).
Procedure
-
On a command line or command prompt, install the Angular CLI Tool package.
npm install -g @angular/cli
-
Create a new Angular project named
tinymce-angular-demo
.ng new --defaults --skip-git tinymce-angular-demo
-
Change into the newly created directory.
cd tinymce-angular-demo
-
Install the
tinymce
andtinymce-angular
packages and save them to yourpackage.json
with--save
.npm install --save tinymce @tinymce/tinymce-angular
-
Using a text editor, open
/path/to/tinymce-angular-demo/src/app/app.component.ts
and replace the contents with:import { Component } from '@angular/core'; import { EditorComponent } from '@tinymce/tinymce-angular'; @Component({ selector: 'app-root', standalone: true, imports: [EditorComponent], template: ` <h1>TinyMCE 7 Angular Demo</h1> <editor [init]="init" /> ` }) export class AppComponent { init: EditorComponent['init'] = { plugins: 'lists link image table code help wordcount' }; }
-
Using a text editor; open
angular.json
and add TinyMCE to theassets
property."assets": [ { "glob": "**/*", "input": "node_modules/tinymce", "output": "/tinymce/" } ]
-
Load TinyMCE.
-
To load TinyMCE when the editor is initialized (also known as lazy loading), add a dependency provider to the component using the
TINYMCE_SCRIPT_SRC
token.import { EditorComponent, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular'; /* ... */ @Component({ /* ... */ standalone: true, imports: [EditorComponent], providers: [ { provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' } ] })
-
To load TinyMCE when the page or application is loaded:
-
Open
angular.json
and add TinyMCE to the global scripts tag."scripts": [ "node_modules/tinymce/tinymce.min.js" ]
-
Update the editor configuration to include the
base_url
andsuffix
options.export class AppComponent { /* ... */ init: EditorComponent['init'] = { /* ... */ base_url: '/tinymce', // Root for resources suffix: '.min' // Suffix to use when loading resources }; }
-
-
-
Test the application using the Angular development server.
-
To start the development server, navigate to the
tinymce-angular-demo
directory and run:ng serve --open
-
To stop the development server, select on the command line or command prompt and press Ctrl+C.
-
Bundling TinyMCE with an Angular application
Tiny does not recommend bundling tinymce and tinymce-angular with a module loader. Bundling these packages can be complex and error prone.
|
To bundle TinyMCE using a module loader (such as Webpack, Rollup, or Browserify), import or require the tinymce
package, followed by the tinymce-angular
package, then the other required TinyMCE-related imports.
Example of bundling:
/* Add the tinymce-angular wrapper to the bundle */
import { Editor } from '@tinymce/tinymce-angular';
/* For instructions on bundling TinyMCE, see the Bundling TinyMCE documentation. */
For instructions on bundling TinyMCE, see: Bundling TinyMCE.
Deploying the application to a HTTP server
The application will require further configuration before it can be deployed to a production environment. For information on configuring the application for deployment, see: Angular Docs - Building Angular Apps or Angular Docs - Deployment.
To deploy the application to a local HTTP Server:
-
Navigate to the
tinymce-angular-demo
directory and run:ng build
-
Copy the contents of the
tinymce-angular-demo/dist
directory to the root directory of the web server.
The application has now been deployed on the web server.
Additional configuration is required to deploy the application outside the web server root directory, such as http://localhost:<port>/my_angular_application. |
Angular Modules
EditorModule
is available to import from @tinymce/tinymce-angular
. Which should be included in your my.module.ts
file.
import { NgModule } from '@angular/core';
import { EditorModule, TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular';
@NgModule({
/* ... */
imports: [
EditorModule
],
providers: [
// If you're self hosting and lazy loading TinyMCE from node_modules:
{ provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }
],
/* ... */
})
export class MyModule {}
Next Steps
-
For examples of the TinyMCE integration, see: the tinymce-angular storybook.
-
For information on customizing:
-
TinyMCE integration, see: Angular framework Technical Reference.
-
TinyMCE, see: Basic setup.
-
The Angular application, see: the Angular documentation.
-