diff --git a/angular-contenteditable.js b/angular-contenteditable.js
index 54c9fb8..d26293e 100644
--- a/angular-contenteditable.js
+++ b/angular-contenteditable.js
@@ -6,12 +6,24 @@
var old_render;
elmt.bind('input', function(e) {
return scope.$apply(function() {
- var html;
+ var html, rerender;
html = elmt.html();
- if (attrs.stripBr && attrs.stripBr !== "false" && html === ' ') {
- html = '';
+ rerender = false;
+ if (attrs.stripBr && attrs.stripBr !== "false") {
+ html = html.replace(/ $/, '');
+ }
+ if (attrs.noLineBreaks && attrs.noLineBreaks !== "false") {
+ html = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, '');
+ rerender = true;
+ }
+ ngModel.$setViewValue(html);
+ if (rerender) {
+ ngModel.$render();
+ }
+ if (html === '') {
+ elmt.blur();
+ return elmt.focus();
}
- return ngModel.$setViewValue(html);
});
});
old_render = ngModel.$render;
diff --git a/bower.json b/bower.json
index 31419c6..3083ec1 100644
--- a/bower.json
+++ b/bower.json
@@ -1,5 +1,5 @@
{ "name": "angular-contenteditable"
-, "version": "0.2.0"
+, "version": "0.3.0"
, "main": "angular-contenteditable.js"
, "ignore":
[ ".*"
diff --git a/package.json b/package.json
index 717469e..6520e3d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "angular-contenteditable",
- "version": "0.2.0",
+ "version": "0.3.0",
"description": "angular extensions",
"main": "angular-contenteditable.js",
"directories": {
diff --git a/src/contenteditable.coffee b/src/contenteditable.coffee
index f5083fc..231cea8 100644
--- a/src/contenteditable.coffee
+++ b/src/contenteditable.coffee
@@ -6,8 +6,17 @@ angular.module('contenteditable', [])
elmt.bind 'input', (e) ->
scope.$apply ->
html = elmt.html()
- html = '' if attrs.stripBr && attrs.stripBr != "false" && html == '
'
+ rerender = false
+ if attrs.stripBr && attrs.stripBr != "false"
+ html = html.replace /
$/, ''
+ if attrs.noLineBreaks && attrs.noLineBreaks != "false"
+ html = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, '')
+ rerender = true
ngModel.$setViewValue(html)
+ ngModel.$render() if rerender
+ if html == '' # the cursor if the contents is emty, so need to refocus
+ elmt.blur()
+ elmt.focus()
# model -> view
old_render = ngModel.$render # save for later
diff --git a/test/fixtures/no-line-breaks.html b/test/fixtures/no-line-breaks.html
new file mode 100644
index 0000000..dd2fca4
--- /dev/null
+++ b/test/fixtures/no-line-breaks.html
@@ -0,0 +1,34 @@
+
+
+
+
Simple
+
+
+
+
+
+
+
+
+
Contenteditable (View):
+
+ something
+
+
+
+
+
+