angular-froala provides AngularJS bindings to the froala WYSIWYG editor.
- Clone this repo or download the zip.
- Run
bower install
or Download the editor from http://froala.com/wysiwyg-editor/ and jQuery - Load Froala WYSIWYG editor, jQuery and the angular-froala files into your project
- src/angular-froala.js
- src/froala-sanitize.js
- Add the
froala
dependency to your Angular project. example:angular.module('myApp', ['froala'])
- Create a textarea with the froala directive in your view and give it a model, where
myHtml
is a variable on$scope
.<textarea froala ng-model="myHtml"><textarea>
###Options
Setting Defaults: to set defaults for the editor pass a config object to angular.value with the key froalaConfig
like this:
angular.module('myApp', ['froala']).
value('froalaConfig', {
inlineMode: false,
placeholder: 'Enter Text Here'
});
From the Controller: to set options from the controller, create an options object on scope and simply pass it to the froala directive. example:
app.js
function myCtrl($scope){
$scope.myHtml = "<h1>Hello World</h1>"
$scope.froalaOptions = {
buttons : ["bold", "italic", "underline", "sep", "align", "insertOrderedList", "insertUnorderedList"]
}
}
view.html
<textarea froala="froalaOptions" ngModel="myHtml"></textarea>
View a list of all the options available in the docs
###Methods
To use the methods available, access the editor instance from your froalaOptions object $scope.options.froala(method)
and use it as described in the method docs. example:
function myCtrl($scope){
$scope.myHtml = "";
$scope.froalaOptions = {
buttons : ["bold", "italic", "underline", "sep", "align", "insertOrderedList", "insertUnorderedList"]
}
//Use the methods like this
$scope.froalaOptions.froala("getSelection");
###Events Events can be used one of two ways as an attribute on the directive, or passed in with the options. ####Attribute app.js
$scope.editorOnFocus = function(e, editor){
//Do Something
}
view.html
<textarea froala="froalaOptions" ngModel="myHtml" froala-event-focus="editorOnFocus"></textarea>
###options app.js
$scope.froalaOptions = {
inlineMode: false,
placeholder: "Edit Me",
events : {
focus : function(e, editor) {/* ... */}
}
###Displaying Html
Using ng-bind-html
will render your html on the page but the default angular-sanitize.js will strip out all style tags. Remedy this by including froala-sanitize.js
instead. example: <div ng-bind-html="myHtml"></div>
Congrats all is done!
The angular-froala
project is under MIT license.
Froala Editor has 4 different licenses for commercial use. For details please see License Agreement.