javascript - Laravel 混合,Javascript 和范围
问题描述
我在 laravel 框架上访问 javascript 中的函数时遇到问题。我有一个名为 pile.js 的文件,在该文件中我有一个如下所示的函数:
function initPile(json) {
...
}
它使用 laravel-mix “编译”并放置在我的 public/js 文件夹中并包含在其中:
<script src="{{ asset('/js/pile.js') }}" type="text/javascript" defer></script>
但是当我尝试像这样使用文件中的函数时:
<script type="text/javascript" defer>
initPile('@json($data)');
</script>
我收到错误:ReferenceError:未定义 initPile
我试过谷歌这个错误,所有的结果都说我用它把它分配给一个全局变量
window.initPile = function(json) { ... }
然后像这样调用它
window.initPile('@json($data)');
但这只会导致相同的错误.....
解决方案
我找到了解决方案,解决方案是将其分配给窗口,但是因为我在两个脚本标签中都推迟了该函数,所以在声明之前调用了该函数。
推荐阅读
- chart.js - ChartJS 堆积条形图:以相反方向显示值
- python - 带一个变量的线性回归
- vue.js - 使用 vuejs 和 vuetify 对话框访问 dom 元素
- javascript - Promise 和 create-react-app 的问题
- python - Windows PowerShell 中的烧瓶问题
- javascript - 将 React 组件作为对象值返回并将道具绑定到它
- reactjs - 如何从 Redux-Saga 中选择状态
- flutter - 如何在颤动中使用此图像中的容器内的半圆形?
- dart - 如何访问 Dart 内置方法的源代码?
- javascript - 获取当前 CSS 网格布局中的角项目,在悬停时展开