From 4fa785b175e948f2758c5a212492c1d908ad32d8 Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Mon, 22 Jul 2013 22:07:30 -0700 Subject: [PATCH] version 0.3.1: don't rerender unless we actually replaced some divs in no-line-break mode --- angular-contenteditable.js | 9 ++++++--- bower.json | 2 +- package.json | 2 +- src/contenteditable.coffee | 6 ++++-- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/angular-contenteditable.js b/angular-contenteditable.js index d26293e..89248a1 100644 --- a/angular-contenteditable.js +++ b/angular-contenteditable.js @@ -6,15 +6,18 @@ var old_render; elmt.bind('input', function(e) { return scope.$apply(function() { - var html, rerender; + var html, html2, rerender; html = elmt.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; + html2 = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, ''); + if (html2 !== html) { + rerender = true; + html = html2; + } } ngModel.$setViewValue(html); if (rerender) { diff --git a/bower.json b/bower.json index 6ed2985..c239338 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-contenteditable", - "version": "0.3.0", + "version": "0.3.1", "main": "angular-contenteditable.js", "ignore": [ ".*", diff --git a/package.json b/package.json index 67ff189..485dc21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-contenteditable", - "version": "0.3.0", + "version": "0.3.1", "description": "angular extensions", "main": "angular-contenteditable.js", "directories": { diff --git a/src/contenteditable.coffee b/src/contenteditable.coffee index 231cea8..6b8ece7 100644 --- a/src/contenteditable.coffee +++ b/src/contenteditable.coffee @@ -10,8 +10,10 @@ angular.module('contenteditable', []) 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 + html2 = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, '') + if html2 != html + rerender = true + html = html2 ngModel.$setViewValue(html) ngModel.$render() if rerender if html == '' # the cursor if the contents is emty, so need to refocus