Laravel Livewire中@script指令引发函数未定义的修复方案
解决办法
1. 将函数挂载到全局window对象
Livewire的@script指令会把代码封装在局部作用域内,导致全局上下文无法访问该函数。把函数绑定到window对象上,就能让按钮的onclick正常调用:
@script window.adaugaSelect = function() { // 你的函数逻辑代码 } @endscript
2. 改用Livewire原生的wire:click指令
这更贴合Livewire的组件交互设计,把逻辑移到Livewire组件类中实现:
- 修改按钮代码:
<button type="button" title="Adauga o disciplina noua" class="ml-2 my-auto bg-blue-500 text-white px-2 py-1 rounded-lg" wire:click="adaugaSelect">+</button>
- 在对应的Livewire组件类中添加方法:
public function adaugaSelect() { // 这里写原来的函数逻辑 }
3. 替换@script为普通<script>标签
如果不想调整函数作用域,直接用普通脚本标签替代@script,注意把脚本放在按钮之后(比如组件Blade文件的末尾):
<script> function adaugaSelect() { // 你的函数逻辑代码 } </script>
内容的提问来源于stack exchange,提问作者Andrei Popa
相关产品推荐
相关产品推荐

