CKEditor commitContent работает, но setupContent возвращает ноль для атрибутов - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь зафиксировать атрибуты моего пользовательского плагина ckeditor, чтобы при выборе элемента onShow () заполнял все атрибуты. commitContent, кажется, работает как вызывающий element.getAttribute () после фиксации возвращает правильное значение. Однако element.getAttribute () после вызова setupContent () имеет значение null. Некоторый код копируется / вставляется из учебника ckeditor по адресу https://ckeditor.com/docs/ckeditor4/latest/guide/plugin_sdk_sample_2.html

contents: [
            {
                //TAB - BASIC
                id: 'tab-basic',
                label: 'Basic',
                elements: [
                     { 
                        //NAME
                         type: 'text',
                         label: "Name",
                         id: 'name',
                         'default': "ml-model",
                         setup: function( element ) {
                             this.setValue( element.getAttribute( "name" ) );
                             alert( 'setting up: ' + element.getAttribute( "name" ));
                         },
                         commit: function( element ) {
                             element.setAttribute( "name", this.getValue() );
                             alert( 'committing: ' + element.getAttribute( "name" ));
                         }
                     },

Это атрибут, о котором идет речь

onShow: function() {
            var selection = editor.getSelection();
            var element = selection.getStartElement();
            //alert( 'test: ' + element.getAttribute( "name" ));
            if ( element )
                element = element.getAscendant( 'ml-model', true );

            if ( !element || element.getName() != 'ml-model' ) {
                element = editor.document.createElement( 'ml-model' );
                this.insertMode = true;
            }
            else
                this.insertMode = false;

            this.element = element;
            if ( !this.insertMode ) {
                this.setupContent(this.element);
            }
        },

    onOk: function() {          
        var dialog = this;
            var abbr = this.element;
            this.commitContent( abbr );


            if ( this.insertMode) {
                var content = strBuild();
                var element = CKEDITOR.dom.element.createFromHtml(content);
                var instance = this.getParentEditor();
                instance.insertElement(element);
            }

А вот мои функции onShow () и onOk (), которые должны фиксировать и настраивать содержимое.

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