Рейтинг:1

Диалог Ajax drupal не учитывает опцию диалога

флаг cn

У меня есть:

$options['атрибуты']['класс'][] = 'использовать-ajax';
$options['атрибуты']['тип диалогового окна данных'] = 'модальный';
$options['атрибуты']['параметры диалога данных'] = json_encode([
  'ширина' => 375,
]);

возвращаться [
  '#markup' => Link::createFromRoute(
    т('Моя ссылка'),
    $маршрут,
    [],
    $опции
  )->toString()
];

который генерирует ссылку, как и ожидалось:

<a href="/node/1" class="use-ajax" data-dialog-type="modal" data-dialog-options="{&quot;width&quot;:375}">My link</a>

Однако, когда открывается диалоговое окно, его ширина всегда составляет 800 пикселей. Как мне заставить его открываться с шириной, установленной в вызове json_encode?

Открывшийся диалоговый div выглядит следующим образом:

<div style="position: fixed; height: auto; width: 800px; top: 310.133px; left: 683px; z-index: 101;" tabindex="-1" role="dialog" class="ui-dialog ui-corner-all ui-widget ui-widget-content ui-front" aria-describedby="drupal-modal" aria-labelledby="ui-id-1">
4uk4 avatar
флаг cn
Не знаю, является ли это обязательным, но возможно, параметры диалога игнорируются, если вы не определяете `data-dialog-type`.
флаг cn
Я добавил обработанную разметку к вопросу. Элемент указывает 800 пикселей, поэтому я не думаю, что тема переопределяет это.
флаг cn
@ 4k4 Я попытался добавить тип и соответствующим образом обновил вопрос. К сожалению, это не помогло.
4uk4 avatar
флаг cn
Я проверил код, и вам нужен тип, иначе модальное окно вообще не открывается. В противном случае код в порядке, не может воспроизвести проблему.
флаг cn
Это действительно интересно, потому что модальное окно у меня открывалось и раньше. О_о Я, наверное, делаю что-то глупое, но я не могу понять, что...
No Sssweat avatar
флаг ua
Переключитесь на тему Bartik и протестируйте там.
флаг cn
Bartik — хорошая идея, к сожалению, рендеринг меню, где я ссылаюсь на модальное окно, сломался, и я не могу тратить время на его исправление. Вместо этого я, вероятно, попытаюсь пройти через диалоговый рендерер и посмотреть, как он обрабатывает входные параметры.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.