Ckeditor не позволяет выполнить оператор inserttext после перемещения курсора в конец содержимого - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь добавить некоторый контент в конец события ckeditor при нажатии кнопки в Angularjs, но когда я нажимаю кнопку в первый раз, он просто перемещает курсор в конец содержимого и не вставляет текст, который я хочу или добавить, чтобы это работало, я должен снова нажать кнопку

Работает только при двойном нажатии на кнопку.

Функция, которую я вызываю по событию нажатия кнопки

     vm.addAssetsCk = function () {

            var domElementCk = CKEDITOR.instances.itemText;
            // for changing the cursor postion to last
            if (domElementCk.getSelection().getSelectedText().length == 0) {
                var range = domElementCk.createRange();
                range.moveToElementEditEnd(range.root, CKEDITOR.POSITION_BEFORE_END);
                domElementCk.getSelection().selectRanges([range]);
            }

            domElementCk.insertText('Abc');

        }
 <button type="button" ng-click="vm.addAssetsCk()" >Add content</button>
<textarea id="itemText" ckeditor></textarea>

директива для ckeditor в angularjs

app.directive('ckeditor', function () {
        return {
            require: '?ngModel',
            link: function (scope, element, attr, ngModel) {
                var ck = CKEDITOR.replace(element[0]);
                if (!ngModel) return; // do nothing if no ng-model 

                ck.on('pasteState', function () {
                    scope.$apply(function () {
                        ngModel.$setViewValue(ck.getData());
                    });
                });
                ngModel.$render = function (value) {
                    ck.setData(ngModel.$viewValue);
                };

            }
        };
    });

На самом деле скрипт должен работать в один клик. Пожалуйста, предложите, что должно быть сделано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...