Я использую последнюю версию CKEditor (стандартная версия) и на основе этого question, я применил такую директиву angular,
var cmsPlus = angular.module('cmsPlus', []);
cmsPlus.directive('ckEditor', function() {
return {
require: '?ngModel',
link: function(scope, elm, attr, ngModel) {
var ck = CKEDITOR.replace(elm[0]);
if (!ngModel) return;
ck.on('pasteState', function() {
scope.$apply(function() {
ngModel.$setViewValue(ck.getData());
});
});
ngModel.$render = function(value) {
ck.setData(ngModel.$viewValue);
};
}
};
});
Он отлично работает, когда я печатаю что-то в режиме графического интерфейса CKEditor, здесь я получаю типизированный контент в textarea ng-model.
Но когда я перехожу к редактору кода, он не получает обновленный контент даже после перехода обратно в графический интерфейс. Он должен был ввести что-то еще в графическом режиме.
Что не так с моей директивой? Или я могу распространить эту директиву на другие события CKEditor?
Я хочу добавить еще несколько событий для отправки формы или чего-то еще.