You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
angular-contenteditable/angular-contenteditable.js

37 lines
1.0 KiB
JavaScript

(function() {
angular.module('contenteditable', []).directive('contenteditable', function() {
return {
require: 'ngModel',
link: function(scope, elmt, attrs, ctrl) {
var old_render;
old_render = ctrl.$render;
elmt.bind('input', function(e) {
return scope.$apply(function() {
return ctrl.$setViewValue(elmt.html());
});
});
return ctrl.$render = function() {
var el, el2, range, sel;
if (old_render !== null) {
old_render();
}
elmt.html(ctrl.$viewValue);
el = elmt.get(0);
range = document.createRange();
sel = window.getSelection();
if (el.childNodes.length > 0) {
el2 = el.childNodes[el.childNodes.length - 1];
range.setStartAfter(el2);
} else {
range.setStartAfter(el);
}
range.collapse(true);
sel.removeAllRanges();
return sel.addRange(range);
};
}
};
});
}).call(this);