【发布时间】:2021-07-20 13:22:24
【问题描述】:
我正在使用 selectize.js 通过 livewire 进行下拉样式。我将 livewire 用于具有可排序列和分页的数据表。问题是,每次我进行分页或按列排序时,javascript都会丢失,因此下拉菜单没有样式。我已经使用 wire:ignore 解决了样式问题。现在我遇到的新问题是,传递给下拉列表的数据不准确。
@foreach($applications as $application)
<p>{{$application->status}}</p>
<div wire:ignore>
<select class="selectize" name="status" data-width="200px">
@foreach(['Pending',
'Hired',
'Under consideration'] as $status)
<option
@if($application->status === $status) selected @endif>{{ $status }}</option>
@endforeach
</select>
</div>
@endforeach
在 P 标记内,我的状态为“待定”,但在下拉列表中显示为“已雇用”。正确的状态是“待定”。
【问题讨论】:
-
你试过
wire:model="status"吗?这样一来,您的@if selected @endif甚至就没有必要了。不过你需要value="{{ $status }}" -
@ClémentBaconnier 我不明白。主要原因是,在 if 语句中,我没有得到正确的 $application->status。如果我移除电线:忽略,我得到正确的。
-
<select wire:model="status" ....>会将$status绑定到您的select标签。然后livewire会在输入改变时自动选择值并更新$status。而且您不必删除wire:ignore -
@ClémentBaconnier 我这样做了,我得到了胡言乱语,状态是一个数组,所以它甚至不知道在没有应用程序状态的情况下选择哪个
-
所以...这个? laravelplayground.com/#/snippets/…
标签: laravel laravel-livewire selectize.js