Laravel 5混合app.js文件创建

时间:2017-04-19 19:53:34

标签: javascript php laravel laravel-blade mix

我使用一个简单的函数创建了一个自定义JavaScript文件:

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

然后我将此文件添加到webpack.mix.js config:

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

并运行:npm run dev。 npm编译了我的脚本,图片功能包含在app.js文件中。现在我想使用"图片"在blade.php中运行,但每当我调用它时,我得到" Uncaught ReferenceError:图片未定义" 。我检查了页面源代码,发现图片功能包含了不同的功能

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

我应该在从blade.php调用图片功能之前添加一些额外的命名空间,还是我的混音配置有问题?

1 个答案:

答案 0 :(得分:1)

函数和类不向公众公开,因此所有JavaScript逻辑都应该写在JS文件中。 如果您坚持在刀片文件中编写JavaScript逻辑,则可以将该函数附加到window对象。

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

...

window.picture()