Список значений TinyMCE устанавливает переменную «Не удалось найти элемент управления по типу» - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь изменить элемент списка уже в моем плагине TinyMCE, который создает кнопку на панели инструментов с моими пользовательскими функциями для добавления кнопок и тому подобного.

Этот список работает нормально, когда я определяю список значения в моем плагине. js сам. Работает красиво. Тем не менее, я получаю эти значения, сгенерированные с помощью PHP на основе всех файлов, присутствующих в указанной папке c на сервере. Массив PHP преобразуется в массив JSON, а затем изменяется в соответствии с форматом, который нравится TinyMCE. Массив хранится в глобальном значении javascript, называемом «значки». Эта переменная фактически распознается и содержит весь массив JSON, правильно отформатированный для TinyMCE. Я знаю это, потому что когда я жестко запрограммировал этот массив в свой плагин TinyMCE в качестве значений, он отлично работает.

Однако, когда я пытаюсь загрузить этот массив в свойство values ​​с помощью переменной icons, я получаю следующую ошибку в своей консоли, как только я пытаюсь открыть раскрывающееся меню в TinyMCE, которое должно содержать мои загруженные значения: Uncaught Error: Could not find control by type: {JSON array which is in my icons variable, which proces the array is actually properly recognised}.

Модифицированный массив JSON, который я пытаюсь реализовать (который работает, если я кодирую его в плагин), выглядит следующим образом:

[
   {text:"black-42",value:"black-42.png"},
   {text:"black-43",value:"black-43.png"},
   {text:"black_Hamburger menu",value:"black_Hamburger menu.png"}, 
   {text:"black_Linkedin",value:"black_Linkedin.png"}, 
   {text:"black_Location",value:"black_Location.png"},
   {text:"black_Phone",value:"black_Phone.png"},
   {text:"black_Plus",value:"black_Plus.png"},
   {text:"black_behavior",value:"black_behavior.png"}, 
   {text:"black_bicycle",value:"black_bicycle.png"}, 
   {text:"black_black_add",value:"black_black_add.png"}, 
   {text:"black_budget",value:"black_budget.png"},
   {text:"black_bus",value:"black_bus.png"},
   {text:"black_cancel",value:"black_cancel.png"},
   {text:"black_car",value:"black_car.png"}
]

Код в моем плагине. js, который отвечает за элемент списка:

{
          text: 'Icoon',
          onclick: function() {
            ed.windowManager.open({
              title: 'Icoon invoegen',
              body: [{
                        type: 'listbox',
                        name: 'type',
                        label: 'Icoon',
                        values: icons //This is the variable containing my JSON array
                    }],
              onsubmit: function(e) {
                ed.insertContent('[icon name="'+ e.data.text +'"]');
              }
            });
          }
        }

Я в растерянности, все отзывы очень ценятся!

...