Я пытаюсь использовать CKEditor с AngularJS для редактора WYSIWYG с привязкой данных и все, кажется, работает хорошо. Экстремальная конфигурация помогла нам с нашим соответствием требованиям.inline CKEditor + AngularJS + dataprocessing
Теперь мы сталкиваемся с проблемой с грязной формой.
Проблема:
model -> abc<br>def\n
ckeditor dataprocessor makes it -> abc<br />def
который расщепляет модель & редактора контента равенства и, следовательно, вызывает форму, чтобы быть грязным.
Все, что я хочу, - это установить модель с предварительно обработанным значением после инициализации, чтобы сохранить равенство.
Вот Угловой код для него:
app.directive('contenteditable', function() {
return {
require : 'ngModel',
link : function(scope, element, attrs, ctrl) {
var editor = CKEDITOR.inline(element[0]);
// view -> model
editor.on('pasteState', function() {
scope.$apply(function() {
ctrl.$setViewValue(editor.getData());
});
});
// model -> view
ctrl.$render = function() {
editor.setData(ctrl.$viewValue);
};
// load init value from DOM
ctrl.$render();
}
};
});
я сделал совсем немного поиска, но не нашел ничего, кроме отключив плагина, который, очевидно, не рекомендуется. Какие-либо предложения?
- редактировать -
в директиве:
editor.on('instanceReady', function() {
scope.$apply(function() {
ctrl.$setViewValue(editor.getData());
scope.$broadcast('resetContentEditableModel');
});
});
в контроллере:
$scope.$on('resetContentEditableModel', function() {
$scope.model.value = $scope.form.value;
});
Это, кажется, делает трюк.
спасибо :) первая точка работала. обновленный вопрос позволяет увидеть, создает ли он какую-либо другую проблему. – Srinivas