Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Подскажите, подсключая js-файлы в подключаемые .js-файлы нужно передать ряд параметров с сервера, что-то вроде :
<script src=" url('js/my_app.js') "></script>
<script type="text/javascript" language="JavaScript">
/*<![CDATA[*/
var backendSongsEditorFuncs = new backendSongsEditorFuncs( { // must be called before jQuery(document).ready(function ($) {
<?php echo prepareParams( true, array( 'm_pageUrl'=> $m_pageUrl, ... ) )?>
} );
jQuery(document).ready(function ($) {
backendSongsEditorFuncs.onEditorInit()
});
/*]]>*/
</script>
И в темплейте вызывать методы backendSongsEditorFuncs обьекта...
Нет ли в laravel 5.4 методов/либ для этих целей чтобы не изобретать велосипед ?
Спасибо!
Не в сети
Самый простой вариант - в мастер-шаблоне пишешь
<script>
var xxx = '{{ $xxx }}';
var yyy = '{{ $yyy }}';
</script>
Теперь js-переменные xxx & yyy будут в глобальной области видимости и доступны из любого скрипта, который подключен к странице.
Изменено DBR (25.04.2017 20:02:04)
Не в сети
не, ну так нельзя. во-первых {{ … }} экранирует строки для html а не js – зачем в js строки с html entities – непонятно, и во-вторых если переменные содержат пользовательские данные – получается типичная XSS-уязвимость. для js есть json_encode – надо помнить что json является валидным значением переменной в js, так что можно выводить просто как var x = <?= json_encode($x, JSON_UNESCAPED_UNICODE) ?>; если не хочется делать json исполняемым для пущей безопасности можно этот код записать как var x = JSON.parse('<?= json_encode($x, JSON_UNESCAPED_UNICODE) ?>'); хотя я не уверен что в json искейпятся одиночные слэши. возможно там ещё addcslashes нужно будет добавить – это можно протестить в тинкере
Не в сети