I am using latest CKEditor (Standard Version) and based on this question , I have implemented an angular directive like this,
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);
};
}
};
});
It's working fine when I am typing something in CKEditor GUI mode, here I am getting the typed content to textarea's ng-model.
But when I am switching to code-editor, it's not getting the updated content even after switch back to GUI. It's required to type something again in graphical mode.
What is wrong with my directive? Or can I extend this directive with some other CKEditor events?
I want add some more events for form submit or something else.
See Question&Answers more detail:os