GithubHelp home page GithubHelp logo

angular-ckeditor's Introduction

angular-ckeditor

Build Status Dependency Status devDependency Status

CKEditor directive for Angular.

Install

Using bower

bower install angular-ckeditor

Using NPM

npm install angular-ckeditor

Note : obviously this plugin expects the presence of AngularJS and CKEditor.

Usage

Example

HTML:

<!-- Load files. -->
<script src="angular.js"></script>
<script src="ckeditor.js"></script>
<script src="angular-ckeditor.js"></script>

<div ng-controller="CkeditorCtrl">
  <div ckeditor="options" ng-model="content" ready="onReady()"></div>
</div>

JavaScript:

angular.module('controllers.ckeditor', ['ckeditor'])
.controller('CkeditorCtrl', ['$scope', function ($scope) {

  // Editor options.
  $scope.options = {
    language: 'en',
    allowedContent: true,
    entities: false
  };

  // Called when the editor is completely ready.
  $scope.onReady = function () {
    // ...
  };
}]);

"ckeditor" directive

  • "ckeditor" editor options. Accepts an Object.
  • "ng-model" bound scope variable.
  • "ready" (optional) callback called when the editor is completely ready. Accepts an Angular expression.
  • "contenteditable" (optional) if set to true, inline editing mode is enabled

IMPORTANT NOTICE Angular-ckeditor uses ng-model. If you add an ng-if on the element to whom this directive is attached, changes in the editor won't be forwarded to your code anymore, due to the extra scope created by ng-if. A solution is to explicitely bypass the extra scope : ng-model="$parent.model". See http://stackoverflow.com/questions/18342917/angularjs-ng-model-doesnt-work-inside-ng-if

Advanced usage

getting internal ckeditor instance

Internally, CKEditor gives a name to its instances, either the id of the element it's on or automatic name (editor1, editor2...). If you plan to look for your instances programmatically via CKEditor.istances, be sure to give them a unique id="..." (Beware of re-usable directives).

In a directive on the same element, you can also use :

link: function (scope, element) {
  var ckeditorController = element.controller('ckeditor'); // angular-ckeditor controller
  var ckeditorInstance = ckeditorController.instance;

See also

You may find this other directive useful : https://github.com/lemonde/angular-ckeditor-placeholder

License

MIT

Contributing

  • clone repo
  • ensure your editor is decent and pick up the .editorconfig and .jshintrc files
  • npm install
  • npm test
  • add tests, add features
  • grunt (to generate minified version)
  • send a PR

Thanks !

angular-ckeditor's People

Contributors

fidelisclayton avatar gregberge avatar gustavodegeus avatar icandivideby0 avatar ionparticle avatar ivanyeoh avatar mariusbrn avatar salper avatar timmurphy avatar yvem avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.