From dd8ac4dc44d9f9abfdf7d0f6e6949fa8fdfb3ce8 Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Mon, 11 Nov 2013 15:33:56 -0800 Subject: [PATCH] pull out options first --- angular-contenteditable.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/angular-contenteditable.js b/angular-contenteditable.js index 0c0250b..fdcb3d6 100644 --- a/angular-contenteditable.js +++ b/angular-contenteditable.js @@ -14,16 +14,27 @@ angular.module('contenteditable', []) return } + // options + var opts = {} + angular.forEach([ + 'stripBr', + 'noLineBreaks', + 'selectNonEditable', + ], function(opt) { + var o = attrs[opt] + opts[opt] = o && o !== 'false' + }) + // view -> model element.bind('input', function(e) { scope.$apply(function() { var html, html2, rerender html = element.html() rerender = false - if (attrs.stripBr && attrs.stripBr !== "false") { + if (opts.stripBr) { html = html.replace(/
$/, '') } - if (attrs.noLineBreaks && attrs.noLineBreaks !== "false") { + if (opts.noLineBreaks) { html2 = html.replace(/
/g, '').replace(/
/g, '').replace(/<\/div>/g, '') if (html2 !== html) { rerender = true @@ -66,7 +77,7 @@ angular.module('contenteditable', []) sel.removeAllRanges() sel.addRange(range) } - if (attrs.selectNonEditable && attrs.selectNonEditable !== "false") { + if (opts.selectNonEditable) { element.bind('click', function(e) { var range, sel, target target = e.toElement