Я использую CKEditor в своем веб-браузере AngularJS. Я определил событие pasteState
, чтобы прослушать текстовые изменения и скопировать его на мой ng-model
.Внедрить CKEditor с AngularJS (pasteState event)
Сегодня я обновил CKEditor с версии 4.4.7
до 4.5.1
(последний) и обнаружил, что мое событие pasteState
никогда не запускается.
Моя директива с change
события: не
appDrct.directive('ckEditor', function() {
return {
require: '?ngModel',
link: function($scope, $elm, attr, ngModel) {
var config = {
toolbar:[[ 'Bold', 'Italic', 'Underline', 'Strike', 'TextColor', 'FontSize', '-', 'JustifyLeft', 'JustifyRight' ]]
};
config.removeButtons = '';
config.fontSize_sizes = 'petit/12px;normal/14px;grand/16px;';
var ck = CKEDITOR.inline ($elm[0], config);
if (!ngModel) return;
//ck.on('pasteState', function() {
ck.on('change', function() {
console.log(ck.mode);
$scope.$apply(function() {
ngModel.$setViewValue(ck.getData() || '');
});
});
ngModel.$render = function (value) {
ck.setData(ngModel.$viewValue);
};
$scope.$on("$destroy",function() {
CKEDITOR.instances[ck.name].destroy();
});
}
};
});
Спасибо, но я не хочу зависеть от чей-то кода; Я хочу все понять, и эти решения кажутся слишком тяжелыми для меня ... См. Мой обновленный вопрос, я добавил свою директиву, но событие 'change' никогда не запускается – ncohen
Я не знаю, что я сказал, я только что обновил свой ответ. –
Я использовал пользовательскую версию ckeditor без плагина Undo (который является плагином, который запускает событие 'change'!) – ncohen