Demo is available at: http://www.textangular.com
This readme is for the v1.2.1-preX releases, if you are looking for the v1.2.0 readme go here: https://github.com/fraywing/textAngular/tree/v1.2.0
AngularJS
≥1.2.x
Angular Sanitize
≥1.2.x
- Bootstrap 3.x for the default styles
- Font-Awesome 4.x for the default icons on the toolbar
- Rangy 1.x for better activeState detection and more dynamic plugins, also the selectionsaverestore module.
NOTE: If you are using angular-sanitize
anywhere you need to pick one of angular-sanitize
OR textAngular-sanitize
as the latter is our fork of the angular-sanitize
file so loading both may cause conflicts or unexpected behaviour.
Via Bower:
Run bower install textAngular
from the command line.
Include script tags similar to the following:
<script src='/bower_components/textAngular/dist/textAngular-sanitize.min.js'></script>
<script src='/bower_components/textAngular/dist/textAngular.min.js'></script>
Via CDNJS:
Include script tags similar to the following:
<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.2.0/textAngular-sanitize.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/textAngular/1.2.0/textAngular.min.js'></script>
Via jsDelivr:
Include script tag similar to the following: (For details on how this works see: https://github.com/jsdelivr/jsdelivr#load-multiple-files-with-single-http-request)
<script src='http://cdn.jsdelivr.net/g/angular.textangular@1.2.0(textAngular-sanitize.min.js+textAngular.min.js)'></script>
Via Github
Download the code from https://github.com/fraywing/textAngular/releases/latest, unzip the files then add script tags similar to the following:
<script src='/path/to/unzipped/files/textAngular-sanitize.min.js'></script>
<script src='/path/to/unzipped/files/textAngular.min.js'></script>
- Include
textAngular-sanitize.js
ortextAngular-sanitize.min.js
in your project using script tags - Include
textAngularSetup.js
thentextAngular.js
ortextAngular.min.js
- Add a dependency to
textAngular
in your app module, for example:angular.module('myModule', ['textAngular'])
. - Create an element to hold the editor and add an
ng-model="htmlVariable"
attribute wherehtmtlVariable
is the scope variable that will hold the HTML entered into the editor:
<div text-angular ng-model="htmlVariable"></div>
OR
<text-angular ng-model="htmlVariable"></text-angular>
This acts similar to a regular AngularJS / form input if you give it a name attribute, allowing for form submission and AngularJS form validation.
Have fun!
Important Note: Though textAngular supports the use of all attributes in it's input, please note that angulars ng-bind-html WILL strip out all of your style attributes.
For Additional options see the github Wiki.
textAngular uses execCommand
for the rich-text functionality.
That being said, its still a fairly experimental browser feature-set, and may not behave the same in all browsers - see http://tifftiff.de/contenteditable/compliance_test.html for a full compliance list.
It has been tested to work on Chrome, Safari, Opera, Firefox and Internet Explorer 8+.
If you find something, please let me know - throw me a message, or submit a issue request!
When checking out, you need a node.js installation, running npm install
will get you setup with everything to run the unit tests and minification.
This project is licensed under the MIT license.
Special thanks to all the contributions thus far!
Including those from: