首页 > 解决方案 > 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)');

但这只会导致相同的错误.....

标签: javascriptlaravelwebpacklaravel-mix

解决方案


我找到了解决方案,解决方案是将其分配给窗口,但是因为我在两个脚本标签中都推迟了该函数,所以在声明之前调用了该函数。


推荐阅读