Как включить или отключить ckeditor.inline в div на основе щелчка кнопки/ссылки.
Так я бы достиг этого в jquery, но не могу понять это с помощью углового.
$('.toggle-edit').click(function(e){
var id_editedDiv = $(this).data('editTarget');
var editedDiv = '#' + id_editedDiv;
if( $(editedDiv).attr('contenteditable') == 'true' )
{
$(editedDiv).attr('contenteditable','false');
CKEDITOR.instances.id_editedDiv.destroy();
$(this).text('Start Editing');
}
else
{
$(editedDiv).attr('contenteditable','true');
CKEDITOR.inline( id_editedDiv );
$(this).text('Finish Editing');
}
});
Вот как я достиг результата.
https://plnkr.co/edit/YUOYGa?p=preview
Но теперь мне нужно выяснить, как привязать модель к CKEditor, чтобы изменения менялись в модели, когда я нажимал save.
Уничтожает экземпляр редактора, освобождая все используемые им ресурсы. Если редактор заменит элемент, элемент будет восстановлен.
В вашем контроллере:
alert( CKEDITOR.instances.editor1 ); // e.g. object
CKEDITOR.instances.editor1.destroy();
alert( CKEDITOR.instances.editor1 ); // undefined
Вы можете использовать кнопку с атрибутом ng-click, например:
<button type="button" class="inlineEditButton"
ng-controller="CKEditorController"
ng-click="changeInlineEditindState()"
</button>
в CKEditorController вы должны определить метод:
$scope.changeInlineEditindState = function() {
// your code
}
Вы можете сделать что-то вроде:
var content = '';
После создания экземпляра добавьте прослушиватель:
ck.on('instanceReady', function () {
ck.setData(content);
});
Нажмите кнопку "Сохранить":
content = ck.getData();