Создание файла Laravel 5 mix app.js

Я создал собственный файл JavaScript с простой функцией:

function picture(soemthing){
    document.getElementById('idXYZ').src = "example.com";
}

Затем я добавил этот файл в конфигурацию webpack.mix.js:

mix.js(['resources/assets/js/app.js', 'resources/assets/js/xyz.js'], 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');

и запустить: npm запустить dev. npm скомпилировал мой скрипт, и функция рисунка была включена в файл app.js. Теперь я хотел бы использовать функцию "picture" в файле blade.php, но всякий раз, когда я вызываю ее, я получаю "Uncaught ReferenceError: изображение не определено". Я проверил источник страницы и обнаружил, что функция изображения обернута другой функцией

(function(module, exports) {
    function picture(soemthing) {
        document.getElementById('idXYZ').src = "example.com";
    }
}) 

Должен ли я добавить какое-то дополнительное пространство имен перед вызовом функции изображения из blade.php или у меня что-то не так с конфигурацией микса?

1 ответ

Решение

Функции и классы не доступны для общественности, поэтому вся логика JavaScript должна быть записана в файлах JS. Если вы настаиваете на написании логики JavaScript в блейд-файле, вы можете прикрепить функцию к window объект.

window.picture = function picture(soemthing){
    document.getElementById('idXYZ').src = "example.com";
}

...

window.picture()
Другие вопросы по тегам