diff --git a/Gruntfile.coffee b/Gruntfile.coffee
index d7cadc5..d4a1ddd 100644
--- a/Gruntfile.coffee
+++ b/Gruntfile.coffee
@@ -17,7 +17,10 @@ module.exports = (grunt) ->
configFile: 'test/e2e.karma.coffee'
singleRun: true
browsers: ['PhantomJS']
- jshint: src: ['angular-contenteditable.js']
+ jshint:
+ src: ['angular-contenteditable.js']
+ options:
+ asi: true
require('matchdep').filterDev('grunt-*').forEach grunt.loadNpmTasks
diff --git a/angular-contenteditable.js b/angular-contenteditable.js
index 57653e4..20ab9d6 100644
--- a/angular-contenteditable.js
+++ b/angular-contenteditable.js
@@ -2,71 +2,71 @@ angular.module('contenteditable', [])
.directive('contenteditable', function() { return {
require: 'ngModel',
link: function($scope, $element, attrs, ngModel) {
- var old_render;
+ var old_render
// view -> model
$element.bind('input', function(e) {
$scope.$apply(function() {
- var html, html2, rerender;
- html = $element.html();
- rerender = false;
+ var html, html2, rerender
+ html = $element.html()
+ rerender = false
if (attrs.stripBr && attrs.stripBr !== "false") {
- html = html.replace(/
$/, '');
+ html = html.replace(/
$/, '')
}
if (attrs.noLineBreaks && attrs.noLineBreaks !== "false") {
- html2 = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, '');
+ html2 = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, '')
if (html2 !== html) {
- rerender = true;
- html = html2;
+ rerender = true
+ html = html2
}
}
- ngModel.$setViewValue(html);
+ ngModel.$setViewValue(html)
if (rerender) {
- ngModel.$render();
+ ngModel.$render()
}
if (html === '') {
// the cursor disappears if the contents is empty
// so we need to refocus
- $element.blur();
- $element.focus();
+ $element.blur()
+ $element.focus()
}
- });
- });
+ })
+ })
// model -> view
- old_render = ngModel.$render;
+ old_render = ngModel.$render
ngModel.$render = function() {
- var el, el2, range, sel;
+ var el, el2, range, sel
if (!!old_render) {
- old_render();
+ old_render()
}
- $element.html(ngModel.$viewValue || '');
- el = $element.get(0);
- range = document.createRange();
- sel = window.getSelection();
+ $element.html(ngModel.$viewValue || '')
+ el = $element.get(0)
+ range = document.createRange()
+ sel = window.getSelection()
if (el.childNodes.length > 0) {
- el2 = el.childNodes[el.childNodes.length - 1];
- range.setStartAfter(el2);
+ el2 = el.childNodes[el.childNodes.length - 1]
+ range.setStartAfter(el2)
} else {
- range.setStartAfter(el);
+ range.setStartAfter(el)
}
- range.collapse(true);
- sel.removeAllRanges();
- sel.addRange(range);
- };
+ range.collapse(true)
+ sel.removeAllRanges()
+ sel.addRange(range)
+ }
if (attrs.selectNonEditable && attrs.selectNonEditable !== "false") {
$element.click(function(e) {
- var range, sel, target;
- target = e.toElement;
+ var range, sel, target
+ target = e.toElement
if (target !== this && angular.element(target).attr('contenteditable') === 'false') {
- range = document.createRange();
- sel = window.getSelection();
- range.setStartBefore(target);
- range.setEndAfter(target);
- sel.removeAllRanges();
- sel.addRange(range);
+ range = document.createRange()
+ sel = window.getSelection()
+ range.setStartBefore(target)
+ range.setEndAfter(target)
+ sel.removeAllRanges()
+ sel.addRange(range)
}
- });
+ })
}
}
- };});
+ }})