javascript - rich text with non editable content, angularjs -


i use directive textangular format email notification text , stuck while task when need add non editable html inside rich text. added custom directive on textangular directive. custom directive replace special characters in string html span tags param contenteditable='false', param doesn't work , content still editable.

in case have 2 questions:

  1. how can setup non-editable html inside content textangular directive?
  2. how can concat variable string desire place (currently concats end of string)

i appreciate help.

plunker problem

my custom directive:

app.directive('removemarkers', function () {  return {     require: "ngmodel",     link: function (scope, element, attrs, ngmodel) {         element.bind('click', function (e) {                 var target = e.target;                 var parent = target.parentelement;                 if (parent.classlist.contains('label-danger')){                     parent.remove()                 }             });          function changeview(modelvalue){             modelvalue= modelvalue                 .replace(/\{{/g, "<span class='label label-danger' contenteditable='false' style='padding: 6px; color: #ffffff; font-size: 14px;'>")                 .replace(/\}}/g, "<span contenteditable='false' class='remove-tag fa fa-times'></span></span>&nbsp;");             ngmodel.$modelvalue= modelvalue;              console.log(ngmodel)             return modelvalue;         }         ngmodel.$formatters.push(changeview);         }     } }); 

html

  <select class="form-control pull-right"                 style="max-width: 250px"                 ng-options="label.name label.label label in variables"                 ng-change="selectedemailvariables(variable)"                 ng-model="variable">             <option value="">template variables</option>    </select>    <div text-angular remove-markers name="email" ng-model="data.notifiation"></div> 

1) can't simply use contenteditable='false' attribute on elements, since textangularstrips it. enable it in past had download textangular-sanitize.min.js , edit array of allowed attributes. starts j=f("abbr,align,, have add contenteditable comma separated list.

2) insert template cursor position can use wrapselection method within editor scope, work:

$scope.selectedemailvariables = function (item) {     if (item !== null) {           var editorscope = textangularmanager.retrieveeditor('editor1').scope;           editorscope.displayelements.text[0].focus();           editorscope.wrapselection('inserthtml',            " <span class='label label-danger' contenteditable='false' style='color: #ffffff; font-size: 14px;'>" + item + "<span contenteditable='false' class='remove-tag fa fa-times'></span></span> ", true);     } }; 

here working plnkr.

p.s.: textangular seems editor, lacks of functionality , personally, don't documentation. have gather lot of info through issues on github. right switched other alternative editors, possibly in future.


Comments

Popular posts from this blog

python Tkinter Capturing keyboard events save as one single string -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

javascript - Z-index in d3.js -