Как очистить экземпляр CKEDITOR от Angularjs после отправки AJAX? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть форма с 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');
            }
        });
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...