version 0.3.1: don't rerender unless we actually replaced some divs in no-line-break mode

fix-space-nbsp 0.3.1
Dmitri Akatov 11 years ago
parent 0da3b6c473
commit 4fa785b175

@ -6,15 +6,18 @@
var old_render; var old_render;
elmt.bind('input', function(e) { elmt.bind('input', function(e) {
return scope.$apply(function() { return scope.$apply(function() {
var html, rerender; var html, html2, rerender;
html = elmt.html(); html = elmt.html();
rerender = false; rerender = false;
if (attrs.stripBr && attrs.stripBr !== "false") { if (attrs.stripBr && attrs.stripBr !== "false") {
html = html.replace(/<br>$/, ''); html = html.replace(/<br>$/, '');
} }
if (attrs.noLineBreaks && attrs.noLineBreaks !== "false") { if (attrs.noLineBreaks && attrs.noLineBreaks !== "false") {
html = html.replace(/<div>/g, '').replace(/<br>/g, '').replace(/<\/div>/g, ''); html2 = html.replace(/<div>/g, '').replace(/<br>/g, '').replace(/<\/div>/g, '');
rerender = true; if (html2 !== html) {
rerender = true;
html = html2;
}
} }
ngModel.$setViewValue(html); ngModel.$setViewValue(html);
if (rerender) { if (rerender) {

@ -1,6 +1,6 @@
{ {
"name": "angular-contenteditable", "name": "angular-contenteditable",
"version": "0.3.0", "version": "0.3.1",
"main": "angular-contenteditable.js", "main": "angular-contenteditable.js",
"ignore": [ "ignore": [
".*", ".*",

@ -1,6 +1,6 @@
{ {
"name": "angular-contenteditable", "name": "angular-contenteditable",
"version": "0.3.0", "version": "0.3.1",
"description": "angular extensions", "description": "angular extensions",
"main": "angular-contenteditable.js", "main": "angular-contenteditable.js",
"directories": { "directories": {

@ -10,8 +10,10 @@ angular.module('contenteditable', [])
if attrs.stripBr && attrs.stripBr != "false" if attrs.stripBr && attrs.stripBr != "false"
html = html.replace /<br>$/, '' html = html.replace /<br>$/, ''
if attrs.noLineBreaks && attrs.noLineBreaks != "false" if attrs.noLineBreaks && attrs.noLineBreaks != "false"
html = html.replace(/<div>/g, '').replace(/<br>/g, '').replace(/<\/div>/g, '') html2 = html.replace(/<div>/g, '').replace(/<br>/g, '').replace(/<\/div>/g, '')
rerender = true if html2 != html
rerender = true
html = html2
ngModel.$setViewValue(html) ngModel.$setViewValue(html)
ngModel.$render() if rerender ngModel.$render() if rerender
if html == '' # the cursor if the contents is emty, so need to refocus if html == '' # the cursor if the contents is emty, so need to refocus