2017-05-15 1 views
0

Ich erstelle mehrere tinymce Editor für jeden ausgewählten Benutzer. Editoren wurden korrekt erstellt, wenn die Anzahl der Benutzer geringer ist (unter 10). Wenn Benutzerlimits über 10 hinausgehen, werden die Editoren nur auf wenige Textbereiche angewendet und nicht auf wenige Textbereiche angewendet.Problem in dynamisch erstellen mehrere uin tinymce Editor angularjs

Please refer this image for my issue.

bitte oben das Bild beziehen. Meine Ansicht ist:

<div ng-repeat="selnominee in pepsicoNomination.selectedNomineesforContribution track by $index"> 
<textarea class="contri_txtarea" 
             ng-model="selnominee.NomineeDetails.Contribution" ui-tinymce="tinymceNominee.options" rows="13" cols="80" required></textarea> 
</div> 

Basierend auf der Länge von „pepsicoNomination.selectedNomineesforContribution“, die Anzahl der Textbereiche erstellt und Editor für diese Textbereiche angewendet müssen.

Mein Skript ist:

$scope.tinymceNominee = { 
      cmtsCharLength: 0, 
      options: { 
       height: 175, 
       theme: 'modern', 
       plugins: [ 
        "advlist autolink lists link image hr anchor charcount autoresize" 
       ], 
       toolbar1: "bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link", 
       menubar: false, 
       browser_spellcheck: true, 
       gecko_spellcheck: true, 
       content_css: [ 
        '//fonts.googleapis.com/css?family=Lato:300,300i,400,400i', 
        '//www.tinymce.com/css/codepen.min.css' 
       ], 
       resize: true, 
       elementpath: false, 
       autoresize_min_height: 175, 
       autoresize_max_height: 600, 
       setup: function (ed) { 

        ed.on('resizeeditor', function (e) { 
         $('.mce-tinymce').width("100%"); 
        }); 

        ed.on('keydown', function (e) { 
         var allowedKeys = [8, 35, 36, 37, 38, 39, 40, 45, 46]; 
         if (allowedKeys.indexOf(e.keyCode) != -1) return true; 

         var txtLength = CountCharacters(ed.id); 
         if (txtLength >= $scope.pepsicoNomination.Band.ContributionCharCount) { 
          e.preventDefault(); 
          e.stopPropagation(); 
          return false; 
         } 
         $scope.cmtsCharLength = txtLength; 
         return true; 
        }); 

        ed.on('keyup', function (e) { 
         var count = CountCharacters(ed.id); 
         $scope.cmtsCharLength = count; 
        }); 
       }, 
       mode: 'exact' 
      } 
     }; 
+0

Ich habe Timeout zum Laden dieses div. '

'Ich habe diese div unter bestimmten Bedingungen in der Seitenlast zeigen. an diesem Ort wurde nur die Anzahl der Benutzer entschieden. Unter dieser Bedingung versuchte ich mit dem Timeout wie folgt: '$ timeout (function() {$ scope.showContribution = true;}, 500); beim Erstellen wurden alle Texteditoren korrekt angezeigt. Aber beim Editieren ist dasselbe Problem passiert. –

Antwort

0

Es Fehler in irgendeiner Version von TinyMCE ist. Die von der Direktive generierten IDs haben manchmal denselben Namen. Öffnen Sie Ihre ui-tinymce.js Datei und ändern Sie die folgende Zeile ein:

attrs.$set('id', ID_ATTR + '-' + (new Date().valueOf())); 

zu:

attrs.$set('id', ID_ATTR + '-' + (new Date().getTime().valueOf())); 

Dies wird sicherstellen, dass alle Ids einzigartig sind.