Laravel 5 混合 app.js 文件创建
Laravel 5 mix app.js file creation
我创建了一个具有简单功能的自定义 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 文件中。现在我想在 blade.php 中使用 "picture" 函数,但每当我调用它时,我都会得到 "Uncaught ReferenceError: picture is not defined"。查看页面源码,发现图片功能用不同的函数包裹
(function(module, exports) {
function picture(soemthing) {
document.getElementById('idXYZ').src = "example.com";
}
})
我是否应该在从 blade.php 调用图片函数之前添加一些额外的命名空间,或者我的混合配置有问题?
函数和类没有暴露给public,所以所有JavaScript逻辑都应该写在JS文件中。
如果你坚持在 blade 文件中写 JavaScript 逻辑,你可以将函数附加到 window
对象。
window.picture = function picture(soemthing){
document.getElementById('idXYZ').src = "example.com";
}
...
window.picture()
我创建了一个具有简单功能的自定义 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 文件中。现在我想在 blade.php 中使用 "picture" 函数,但每当我调用它时,我都会得到 "Uncaught ReferenceError: picture is not defined"。查看页面源码,发现图片功能用不同的函数包裹
(function(module, exports) {
function picture(soemthing) {
document.getElementById('idXYZ').src = "example.com";
}
})
我是否应该在从 blade.php 调用图片函数之前添加一些额外的命名空间,或者我的混合配置有问题?
函数和类没有暴露给public,所以所有JavaScript逻辑都应该写在JS文件中。
如果你坚持在 blade 文件中写 JavaScript 逻辑,你可以将函数附加到 window
对象。
window.picture = function picture(soemthing){
document.getElementById('idXYZ').src = "example.com";
}
...
window.picture()