TinyMCE Angular integration technical reference
Covered in this section:
Supported Angular versions
The following table shows the supported versions of Angular and the required version of the tinymce-angular
integration package.
Angular Version | tinymce-angular version |
---|---|
16+ |
8.x |
14 or 15 |
7.x |
13 |
6.x |
9 to 12 |
4.x |
5 to 8 |
3.x |
4 or older |
Not Supported |
Installing the TinyMCE Angular integration using NPM
To install the tinymce-angular
package and save it to your package.json
.
npm install --save @tinymce/tinymce-angular
Using the TinyMCE Angular integration
-
Import the
EditorModule
from the npm package using:import { EditorModule } from '@tinymce/tinymce-angular';
Add the
EditorModule
to@NgModule({imports})
:// This might look different depending on how you have set up your app // but the important part is the imports array @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, EditorModule // <- Important part ], providers: [], bootstrap: [AppComponent] })
-
Add the editor to the Angular application template, such as:
<editor apiKey="test" [init]="{plugins: 'link'}"></editor>
Configuring the editor
The editor accepts the following properties:
<editor
apiKey="no-api-key"
cloudChannel="7"
[disabled]="false"
id=""
[init]="{ }"
initialValue=""
[inline]="false"
plugins=""
tagName="div"
toolbar=""
></editor>
None of the configuration properties are required for tinymce-angular
to work. Specify a Tiny Cloud API key using apiKey
to remove the This domain is not registered...
warning message.
apiKey
Tiny Cloud API key. Required for deployments using the Tiny Cloud to provide the TinyMCE editor.
To register for a Tiny Cloud API key, visit the Tiny Account sign-up page. To retrieve the Tiny Cloud API key for an existing Tiny Account, login and visit the Tiny Account Dashboard.
Type: String
Default value: 'no-api-key'
licenseKey
Tiny Cloud License key.
Use this when self-hosting TinyMCE instead of loading from Tiny Cloud. For more information, see: License Key.
Type: String
Default value: undefined
Possible values: undefined
, 'gpl'
or a valid TinyMCE license key
cloudChannel
Type: String
Default value: '7'
Possible values: '7'
, '7-testing'
, '7-dev'
, '7.6'
Changes the TinyMCE build used for the editor to one of the following Tiny Cloud channels:
-
7
(Default): The current enterprise release of TinyMCE. -
7-testing
: The current release candidate for the next enterprise release of TinyMCE. -
7-dev
: The nightly-build version of TinyMCE. -
A version number such as
7.6
: The specific enterprise release version of TinyMCE.
Such as:
<editor
apiKey="your-api-key"
cloudChannel="7-dev"
></editor>
For information TinyMCE development channels, see: Specifying the TinyMCE editor version deployed from Cloud - dev, testing, and stable releases.
disabled
The disabled
property can dynamically switch the editor between a "disabled" (read-only) mode (true
) and the standard editable mode (false
).
Type: Boolean
Default value: false
Possible values: true
, false
id
An id for the editor. Used for retrieving the editor instance using the tinymce.get('ID')
method.
Type: String
Default value: Automatically generated UUID
init
Object sent to the tinymce.init
method used to initialize the editor.
For information on the TinyMCE selector (tinymce.init
), see: Basic setup.
Type: Object
Default value: { }
initialValue
Initial content of the editor when the editor is initialized.
Type: String
Default value: ' '
inline
Used to set the editor to inline mode. Using <editor [inline]="true"></editor>
is the same as setting {inline: true}
in the TinyMCE selector (tinymce.init
).
For information on inline mode, see: User interface options - inline
and Setup inline editing mode.
Type: Boolean
Default value: false
Possible values: true
, false
plugins
Used to include plugins for the editor. Using <editor plugins="lists code"></editor>
is the same as setting {plugins: 'lists code'}
in the TinyMCE selector (tinymce.init
).
For information on adding plugins to TinyMCE, see: Add plugins to TinyMCE.
Type: String
or Array
outputFormat
Used to specify the format of the content emitted by the tinymce-angular
component when used in conjunction with forms or plain data bindings.
Type: String
Default value: 'html'
Possible values: 'html'
, 'text'
tagName
Only valid when <editor [inline]="true"></editor>
. Used to define the HTML element for the editor in inline mode.
Type: String
Default value: 'div'
toolbar
Used to set the toolbar for the editor. Using <editor toolbar="bold italic"></editor>
is the same as setting {toolbar: 'bold italic'}
in the TinyMCE selector (tinymce.init
).
For information setting the toolbar for TinyMCE, see: User interface options - toolbar.
Type: String
Possible values: See Toolbar Buttons Available for TinyMCE.
Using the ngModel
directive
The ngModel
directive can be added to use the editor in a form:
<editor [(ngModel)]="dataModel"></editor>
For information on using NgModel
, see: Angular documentation - NgModel.
Using with reactive forms
To use TinyMCE Angular component with reactive forms:
-
Include the
<editor>
configuration within theformGroup
. -
Add the
formControlName
directive to the editor configuration. For example:<editor [formControlName]="schema.key" [init]="{plugins: 'link'}"></editor>
For information on using reactive forms, see: Angular documentation - Reactive Forms.
Event binding
Functions can be bound to editor events, such as:
<editor (onSelectionChange)="handleEvent($event)"></editor>
When the handler is called (handleEvent
in this example), it is called with an event containing two properties:
-
event
- The TinyMCE event object. -
editor
- A reference to the editor.
The following events are available:
Supported browser events
-
onBeforePaste
-
onBlur
-
onClick
-
onContextMenu
-
onCompositionEnd
-
onCompositionStart
-
onCompositionUpdate
-
onCopy
-
onCut
-
onDblclick
-
onDrag
-
onDragDrop
-
onDragEnd
-
onDragGesture
-
onDragOver
-
onDrop
-
onFocus
-
onFocusIn
-
onFocusOut
-
onInput
-
onKeyDown
-
onKeyPress
-
onKeyUp
-
onMouseDown
-
onMouseEnter
-
onMouseLeave
-
onMouseMove
-
onMouseOut
-
onMouseOver
-
onMouseUp
-
onPaste
-
onSelectionChange
Supported TinyMCE events
-
onActivate
-
onAddUndo
-
onBeforeAddUndo
-
onBeforeExecCommand
-
onBeforeGetContent
-
onBeforeRenderUI
-
onBeforeSetContent
-
onChange
-
onClearUndos
-
onDeactivate
-
onDirty
-
onExecCommand
-
onGetContent
-
onHide
-
onInit
-
onInitNgModel
-
onLoadContent
-
onNodeChange
-
onPostProcess
-
onPostRender
-
onPreInit
-
onPreProcess
-
onProgressState
-
onRedo
-
onRemove
-
onReset
-
onSaveContent
-
onSetAttrib
-
onObjectResizeStart
-
onObjectResized
-
onObjectSelected
-
onSetContent
-
onShow
-
onSubmit
-
onUndo
-
onVisualAid
By default, all the available events will trigger from the editor to the tinymce-angular
component. To limit the events triggering in the component, use the allowedEvents
and ignoreEvents
properties.
allowedEvents
This property requires tinymce-angular 4.2.0 or newer
|
Used to provide an allow-list of valid events to trigger from the editor to the tinymce-angular
component. By default, the component will emit all the events listed in the Event binding section.
Type: String
Possible values: A comma separated list of events to allow.