UNPKG

angular-trix

Version:

A rich wysiwyg text editor directive for angularjs.

65 lines (56 loc) 2.45 kB
/*! angular-trix - v1.0.0 - 2015-12-09 * https://github.com/sachinchoolur/angular-trix * Copyright (c) 2015 Sachin; Licensed MIT */ (function() { 'use strict'; angular.module('angularTrix', []).directive('angularTrix', function() { return { restrict: 'A', require: 'ngModel', scope: { trixInitialize: '&', trixChange: '&', trixSelectionChange: '&', trixFocus: '&', trixBlur: '&', trixFileAccept: '&', trixAttachmentAdd: '&', trixAttachmentRemove: '&' }, link: function(scope, element, attrs, ngModel) { element.on('trix-initialize', function() { if (ngModel.$modelValue) { element[0].editor.loadHTML(ngModel.$modelValue); } }); ngModel.$render = function() { if (element[0].editor) { element[0].editor.loadHTML(ngModel.$modelValue); } element.on('trix-change', function() { ngModel.$setViewValue(element.html()); }); }; var registerEvents = function(type, method) { element[0].addEventListener(type, function(e) { if (type === 'trix-file-accept' && attrs.preventTrixFileAccept === 'true') { e.preventDefault(); } scope[method]({ e: e, editor: element[0].editor }); }); }; registerEvents('trix-initialize', 'trixInitialize'); registerEvents('trix-change', 'trixChange'); registerEvents('trix-selection-change', 'trixSelectionChange'); registerEvents('trix-focus', 'trixFocus'); registerEvents('trix-blur', 'trixBlur'); registerEvents('trix-file-accept', 'trixFileAccept'); registerEvents('trix-attachment-add', 'trixAttachmentAdd'); registerEvents('trix-attachment-remove', 'trixAttachmentRemove'); } }; }); }());