Проверьте, есть ли содержимое tinyMCE

0

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

$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>

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

Теги:
tinymce

1 ответ

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню