2014-11-23 3 views
1

Я пытаюсь использовать redactor.js для редактирования на месте некоторых div в метеор; в шаблоне у меня есть:Использование contenteditable с wysiwyg в meteor

<template name="home"> 
    <section class="editable"> 
    </section> 
    ... 
</template> 

и в ЯШ:

Template.home.events({ 
    "click section.editable": function(event) { 
     $(event.target).redactor(); 
    }, 
}); 

это создает редактор редактор WYSIWYG правильно, когда я нажимаю на участке; проблема заключается в том, что, щелкнув снова, создается другой редактор (вложенный внутри предыдущего); Я пытаюсь без успеха ограничить выполнение метода redactor() только в том случае, если редактор уже не существует.

ответ

0

Можете ли вы обернуть состояние переменной сеанса? Конечно, вы должны установить его снова после того, как редактор был закончен

Template.home.events({ 
    "click section.editable": function(event) { 
     var isEditorActive = Session.get("editorActive", false); 
     if (!isEditorActive) { 
      Session.set("editorActive",true); 
      $(event.target).redactor({ 
       blurCallback: function(e) 
       { 
        Session.set("editorActive",false); 
        this.core.destroy(); // destroy redactor ? 
       } 
      }); 
     } 
    } 
}); 

РАНЕЕ (возможно, попытаться закреплять в случае размытия?):

Есть ли особенности почему вы хотите использовать метеоритные события для этого? Вы могли бы просто использовать redactor.

if (Meteor.isClient) { 
    Meteor.startup(function() { 
     $('section.editable').redactor({ 
      focus: false 
     }); 
    }); 
} 
+0

Ну причина, чтобы связать его с событием щелчка, что я пытаюсь реализовать режим клики, редактировать; Я не хочу запускать с редактором уже там; просто нормальный div, и когда вы нажимаете на него, редактор показывает себя –

+0

@CerealKiller Я обновил свой ответ. Дайте мне знать, как вы поживаете. – cobberboy

+0

Да, но это решение не поддерживает больше активных редакторов одновременно (вам потребуется нечто более сложное, чем переменная для отслеживания состояний редактора ...); наконец, я использовал решение, которое добавляет пользовательский (редактирующий) класс, когда редактор активируется и удаляет его при деактивации; если редактор .hasClass ('. editing') позволяет вам решить, нужно ли вам вызвать метод redactor() или нет ... –