Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Массив в параметрах (https://javascript.ru/forum/dom-window/83133-massiv-v-parametrakh.html)

ureech 25.09.2021 11:28

Массив в параметрах
 
Привет. Вот часть плагина.
var openDialog = function () {
	console.log(images);
        return editor.windowManager.open({
            title: 'Альбом',
            body: {
                type: 'panel',
                items: [{
                    type: 'htmlpanel',
                    label: '',
                    html:
}]
},...

Подскажите как вставить в html: массив. То есть цикл с перебором массива. Нужно что то такое
html :'<div class="container"><div class="row">'
			for(var a in images){'<div class="col-sm-2">'+a+'</div>'}
		'</div></div>'

рони 25.09.2021 11:49

ureech,
что мешает сделать цикл в строке 2

ureech 25.09.2021 12:07

И каждую итерацию будет возвращаться editor.windowManager.open ?

Aetae 25.09.2021 12:27

html: `<div class="container">
  <div class="row">
    ${images.map(a => '<div class="col-sm-2">' + a + '</div>').join('\n')}
  </div>
</div>`,

рони 25.09.2021 12:35

Цитата:

Сообщение от ureech
И каждую итерацию будет возвращаться editor.windowManager.open ?

???
Aetae,:thanks:
var openDialog = function() {
                var html = `<div class="container">
    <div class="row">
        ${images.map(a => '<div class="col-sm-2">' + a + '</div>').join('\n')}
    </div>
   </div>`;

                return editor.windowManager.open({
                            title: 'Альбом',
                            body: {
                                type: 'panel',
                                items: [{
                                    type: 'htmlpanel',
                                    label: '',
                                    html
                                }]
                            },

ureech 25.09.2021 14:26

Всё понял. Всём спасибо).

ureech 25.09.2021 16:07

Картинки в диалоговое окно вывел. Но тут опять засада. Для типа типа панели htmlpanel нет инициализции для клика. То есть я не понимаю как мне теперь кликнув на каотинку отправить ей в редактор. Например для типа панели,которая выводит смайлы она есть
return editor.windowManager.open({
            title: 'Insert smiles',
            body: {
                type: 'panel',
                items: [{
                    type: 'collection',
                    columns: 'auto',
                    name: 'results'
                }]
            },
            initialData: {
                results: smiles
            },
            onAction: function (api, details) {
			
                if (details.name === 'results') {
                    editor.insertContent(smiles_list[details.value]);
                    api.close();
                }
            },

Я изначально пытался по этой схеме делать. Но панель отказалась выводить картинки. Видимо можно только дживки. Маленькие.
Стал делать для htmlpanel. И тут засада. onAction: вообще не активна. Что посоветуете?

ureech 27.09.2021 10:08

Пытаюсь повесить событие при формировании массива в аяксе
var imgUpload = function (e) {
        editor.execCommand('mceInsertContent', false, e);
    }
 var load = function(callback) {

....
var gallery_img = '<img class="img-fluid" onclick="imgUpload(this)"  title=":'+s+':" src="/upload/'+result[s].original+'" style="max-width:100%;height:auto;" />';
....

}

При клике imgUpload неопределена пишет. Как правильно сделать?

ureech 27.09.2021 10:41

Там вообще onclick не работает. Пишу onclick="alert()" и ничего(


Часовой пояс GMT +3, время: 01:47.