Livewire 魔法动作不起作用未捕获的 ReferenceError:$event 未定义
2021-07-08
1164
<div class="row">
<div class="col">
<div class="container">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col">
<div class="mb-5">
<label class="form-label">Order: </label>
<select wire:change="selectOrder($event.target.value)">
@foreach($orders as $option)
<option value="{{$option['id']}}">{{$option['id']}}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
public function selectOrder($order)
{
$this->order = $order;
$this->products = $this->order->products;
}
这里有一个带有选择输入的 live wire 组件,当更改选择时,我需要使用选定的值执行函数
selectOrder
,我使用
$event
魔术动作,但出现以下错误。
1个回答
$event
是 Alpine.js 的魔法属性。
因此,解决这个问题的一种方法是使用 Alpine.js 事件监听器,调用 Livewire 方法。
<select x-on:change="$wire.selectOrder($event.target.value)">
也就是说,您可以使用 Livewire 类中的属性,并将选择绑定到模型,
<select wire:model="orderValue">
然后在组件中监听该变化。
public $orderValue;
// ...
public function updated($field, $value)
{
if ($field === 'orderValue') {
$this->selectOrder($value);
}
}
Qirel
2021-07-08