@demeys

Как задать значение к переменной?

Есть скрипт scripts.js
var App = function() {
    return {
        setAssetsPath: function(path) {
            assetsPath = path;
        },
    };
}();


использую webpack.mix

в файл /resources/js/app.js прописал код
require('./bootstrap');
require('./scripts');


в файле resources/views/app.blade.php
пытаюсь присвоить значение
<script rel="common" type="text/javascript">
        var assetsPath = "{{ asset("assets") }}";
        jQuery(document).ready(function () {
            App.setAssetsPath("{{ URL::asset("assets") }}/");
        });
    </script>

но получаю ошибку
Uncaught ReferenceError: App is not defined
если не использовать webpack то все работает, но хотелось бы чтоб все скрипты были в одном месте
подскажите что тут нужно поправить,
заранее спасибо!
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@pavelpolitaev
Вызов App.setAssetsPath находится вне области видимости вашей сборки (webpack.mix). Вы можете поместить переменную App в глобальную область видимости.
window.App = function() {
    return {
        setAssetsPath: function(path) {
            assetsPath = path;
        },
    };
}();


Это сработает (но это плохая практика), лучше поместить
var assetsPath = "{{ asset("assets") }}";
        jQuery(document).ready(function () {
            App.setAssetsPath("{{ URL::asset("assets") }}/");
        });


в .js файл, а переменные которые вы печатаете прямо в js, поместить, например, в атрибут тега body и из js уже получать эти значения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы