Я пытаюсь понять, имеет ли мой 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>
но на самом деле это не работает
Вещь ed.getContent()
возвращает - даже если вы ничего не набрали - элемент корневого элемента по умолчанию (т. ed.getContent()
Абзац). Это причина, по которой tinyHasContent
всегда будет правдой.
Чтобы проверить это, вы можете распечатать ed.getContent()
на консоли.