diff --git a/angular-contenteditable.js b/angular-contenteditable.js
index f79c352..64cfc64 100644
--- a/angular-contenteditable.js
+++ b/angular-contenteditable.js
@@ -2,20 +2,25 @@
angular.module('contenteditable', []).directive('contenteditable', function() {
return {
require: 'ngModel',
- link: function(scope, elmt, attrs, ctrl) {
+ link: function(scope, elmt, attrs, ngModel) {
var old_render;
- old_render = ctrl.$render;
elmt.bind('input', function(e) {
return scope.$apply(function() {
- return ctrl.$setViewValue(elmt.html());
+ var html;
+ html = elmt.html();
+ if (attrs.stripBr && attrs.stripBr !== "false" && html === '
') {
+ html = '';
+ }
+ return ngModel.$setViewValue(html);
});
});
- return ctrl.$render = function() {
+ old_render = ngModel.$render;
+ return ngModel.$render = function() {
var el, el2, range, sel;
- if (old_render !== null) {
+ if (old_render != null) {
old_render();
}
- elmt.html(ctrl.$viewValue);
+ elmt.html(ngModel.$viewValue || '');
el = elmt.get(0);
range = document.createRange();
sel = window.getSelection();
diff --git a/bower.json b/bower.json
index e117ff4..0db0a92 100644
--- a/bower.json
+++ b/bower.json
@@ -1,5 +1,5 @@
{ "name": "angular-contenteditable"
-, "version": "0.0.1"
+, "version": "0.1.0"
, "main": "angular-contenteditable.js"
, "ignore":
[ ".*"
diff --git a/package.json b/package.json
index 67ad540..cd6f48f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "angular-contenteditable",
- "version": "0.0.1",
+ "version": "0.1.0",
"description": "angular extensions",
"main": "angular-contenteditable.js",
"directories": {
diff --git a/src/contenteditable.coffee b/src/contenteditable.coffee
index 6cf67c5..59687a1 100644
--- a/src/contenteditable.coffee
+++ b/src/contenteditable.coffee
@@ -1,18 +1,19 @@
angular.module('contenteditable', [])
.directive('contenteditable', ->
require: 'ngModel',
- link: (scope, elmt, attrs, ctrl) ->
- old_render = ctrl.$render # save for later
-
+ link: (scope, elmt, attrs, ngModel) ->
# view -> model
elmt.bind 'input', (e) ->
scope.$apply ->
- ctrl.$setViewValue elmt.html()
+ html = elmt.html()
+ html = '' if attrs.stripBr && attrs.stripBr != "false" && html == '
'
+ ngModel.$setViewValue(html)
# model -> view
- ctrl.$render = ->
- old_render() if old_render != null # old_render? leads to linted js
- elmt.html ctrl.$viewValue
+ old_render = ngModel.$render # save for later
+ ngModel.$render = ->
+ old_render() if old_render?
+ elmt.html(ngModel.$viewValue || '')
# move cursor to the end
el = elmt.get(0)
range = document.createRange()
diff --git a/test/fixtures/strip-br.html b/test/fixtures/strip-br.html
new file mode 100644
index 0000000..2330604
--- /dev/null
+++ b/test/fixtures/strip-br.html
@@ -0,0 +1,33 @@
+
+
+
{{ model }}+