开发者问题收集

@click 显示 ReferenceError:未使用 AlpineJS + Livewire + Laravel 定义函数

2021-07-23
9008

我完全迷路了。我之前用 Livewire + AlpineJS + Laravel 制作过多个应用程序,但出于某种原因,我无法让 @click 功能在此应用程序中发挥作用。

我几乎将代码精简为零,但看不到问题所在。我查看了其他使用 @click 的应用程序。

<div x-data="showAppSettings()">

<div @click="whatever(123)">Click here</div>

<script type="text/javascript">

    window.showAppSettings = () => {
        return {
            showNav: false,

            whatever(id)
            {

            }
        };
    }
</script>

单击 click me 并触发该函数时,我收到错误 ReferenceError: whatever is not defined.

如果我执行类似 @click="alert('hey')"

我遗漏了什么?

2个回答

该问题与包含 <script src="{{ asset('js/app.js') }}" defer></script> 有关。

该文件甚至没有被使用。但无论如何,错误是由 app.js 触发的,我意识到这毫无意义,因为代码是内联的。

删除该行后,一切都按预期运行。

space_food_
2021-07-23

需要 defer 属性才能正确加载 alpine 脚本:

<script defer src="https://unpkg.com/[email protected]/dist/cdn.min.js"></script>
walid
2021-12-20