У меня есть форма с textarea
для инициализации экземпляра CKEDITOR, затем я пишу директиву Angularjs, чтобы связать значение в экземпляре ckeditor с моделью, это нормально работает. После того, как я отправляю форму с AJAX и ответом со статусом 200, я хочу сбросить форму (также данные экземпляра CKEDITOR на пустую), но когда я пользуюсь CKEDITOR.instances.editor.setData('')
, браузер выдаст мне ошибку:
Error: $rootScope:inprog
Action Already In Progress
Код директивы:
app.directive('ckeditor', function () {
return {
restrict: 'A',
link: function ($scope, element, attr, ngModel) {
var ckeditor = CKEDITOR.replace(element[0].id);//The id is 'editor'
ckeditor.on('change', function () {
var content = this.getData();
$scope.dataContent.content = content;
$scope.$apply();
})
}
}
});
Код контроллера:
$scope.addContent = function () {
$http.post(...., $.param($scope.dataContent), {headers: {'Content-Type': 'application/x-www-form-urlencoded'}}).then(function (response) {
var res = response.data;
if (res.status === 200) {
msgSuccess(res.message);
CKEDITOR.instances.editor.setData('');//This line cause problem.
} else {
msgError('An error occured');
}
});
};