2015-11-04 5 views
0

Я пытаюсь выяснить, имеет ли мой tinyMCE контент во время записи, и я установил флаг, если да или нет (я использую AngularJS). Так что это код я использую для крошечного:Проверьте, есть ли у tinyMCE контент

$scope.tinyHasContent = false; 
tinymce.init({ 
       selector: "#elm1", 
       height: 400, 
       language:'it', 
       plugins: [ 
        "advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker", 
        "searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking", 
        "save table contextmenu directionality emoticons template paste textcolor" 
       ], 
       content_css: "css/partials/content.css", 
       toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage", 
       style_formats: [ 
        {title: 'Bold text', inline: 'b'}, 
        {title: 'Red text', inline: 'span', styles: {color: '#ff0000'}}, 
        {title: 'Red header', block: 'h1', styles: {color: '#ff0000'}}, 
        {title: 'Example 1', inline: 'span', classes: 'example1'}, 
        {title: 'Example 2', inline: 'span', classes: 'example2'}, 
        {title: 'Table styles'}, 
        {title: 'Table row 1', selector: 'tr', classes: 'tablerow1'} 
       ], 
       setup : function(ed){ 
        ed.on('NodeChange', function(e){ 

         if(ed.getContent() != '' || ed.getContent() != undefined || ed.getContent() != null) { 
          $scope.tinyHasContent = true; 
          console.log('the content ' + ed.getContent() + " " + $scope.tinyHasContent); 
         } else { 
          $scope.tinyHasContent = false; 
          console.log('the content ' + ed.getContent() + " " + $scope.tinyHasContent); 
         } 
        }); 
       } 
      }); 

Просто, при вводе я могу увидеть в журнале, что я пишу. Но проблема в том, что, кажется, всегда есть контент даже для init, потому что он всегда возвращает $ scope.tinyHasContent = true в журнале. Как это возможно?

Кстати, резюме, это то, что я должен делать:

<div ng-if="tinyHasContent == false"> 
<p>Hello</p> 
</div> 

, но на самом деле это не работает

ответ

0

Вещь ed.getContent() возвращается - даже если вы не набрали ни в чем - корень по умолчанию блочный элемент (т.е. абзац). Вот почему tinyHasContent всегда будет правдой.

Для того, чтобы это подтвердить, вы можете распечатать ed.getContent() на свою консоль.

Смежные вопросы