This repository was archived by the owner on Sep 8, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 370
This repository was archived by the owner on Sep 8, 2020. It is now read-only.
Placeholder text for inline editors #197
Copy link
Copy link
Closed

Description
I thought this could be helpful to someone:
I added (hacked) a placeholder text for the tinyMCE inline editor:
$scope.ContentOptions = {
setup: function(editor) {
editor.on('init', function () {
// Default classes of tinyMCE are a bit weird
// I add my own class on init
// this also sets the empty class on the editor on init
tinymce.DOM.addClass( editor.bodyElement, 'content-editor empty' );
});
// You CAN do it on 'change' event, but tinyMCE sets debouncing on that event
// so for a tiny moment you would see the placeholder text and the text you you typed in the editor
// the selectionchange event happens a lot more and with no debouncing, so in some situations
// you might have to go back to the change event instead.
editor.on('selectionchange', function () {
if ( editor.getContent() === "" ) {
tinymce.DOM.addClass( editor.bodyElement, 'empty' );
} else {
tinymce.DOM.removeClass( editor.bodyElement, 'empty' );
}
});
}
}
The HTML part in the view
<div data-placeholder="Content..." id="post-content-editor" ui-tinymce="ContentOptions" ng-model="newPostContentModel"></div>
and Finally the CSS to create the placeholder text (it gets it from data-placeholder="Content..." but you could do it directly in css
.content-editorr:before {
display: none;
}
.content-editor.empty:before {
display: block;
position: absolute;
content: attr(data-placeholder);
}
I hope this could be of help to someone.
dalelarsen, oddlyfunctional, venu222, laura-chesches, sergio-lucas and 1 moredotKev, GWoody, baangfilip, ershwetabansal and alexmaris
Metadata
Metadata
Assignees
Labels
No labels