Я пытаюсь использовать Drupal.settings впервые для передачи переменных из PHP в JavaScript. Документация по теме редкая, и у меня есть несколько вопросов.
Можно ли использовать #attached для прохода через настройки, а не drupal_add_js(array('myModule' => $settings), 'setting');
? Причина, по которой я спрашиваю, заключается в том, что мне сказали, что #attached
это «правильный» способ добавления настроек. (Я знаю, что это также правильный способ добавления файлов, но не уверен, работает ли он с переменными настроек.)
Я использую следующий код, но не могу загрузить его под объекты DOM, и я застрял.
(function ($) {
Drupal.behaviors.myModule = {
attach: function(context, settings) {}
};
});(jQuery);
Любой совет будет принята с благодарностью. Пожалуйста, имейте в виду, что я впервые решил использовать Drupal.settings, поэтому каждая деталь приветствуется и ценится.
источник
Большое спасибо за ответы размещены.
Как упоминалось в первоначальном вопросе, проблема заключалась не в том, как загрузить файлы CSS и JS с помощью #attached, а в том, как передать переменные в Drupal.settings с помощью #attached, а не drupal_add_js (). Есть дружественные проблемы, связанные с drupal_add_js в отношении кэширования и доступности в DOM.
После некоторых исследований у меня есть решение. В следующем примере используется #attached для загрузки JS-файла И для передачи переменных PHP через присоединение их к массиву $ page (массив визуализации).
Поэтому я хочу сделать это потому, что хочу передать переменные состояния из PHP / Drupal в файл jQuery, такой как логические значения и т. Д. С помощью приведенного выше примера я теперь могу получить доступ к этому «состоянию», используя:
Все это делается без прикосновения к drupal_add_js ();
источник