1

我用一个简单的函数创建了一个自定义 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 run dev。npm 编译了我的脚本,图片功能包含在 app.js 文件中。现在我想在blade.php 中使用“图片”函数,但每当我调用它时,我都会得到“未捕获的ReferenceError:图片未定义”。查了页面源码,发现图片函数是用不同的函数包裹的

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

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

4

1 回答 1

1

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

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

...

window.picture()
于 2017-04-19T20:19:39.633 回答