我有一个引导选择器 https://developer.snapappointments.com/bootstrap-select/在第一次渲染时工作正常的元素。它的初始化为:
$(document).ready(function () {
$('select').selectpicker();
});
但是调用livewire的render函数之后<select>
元素不再呈现为 Bootstrap selectpicker。
浏览两个文档(相关部分here https://laravel-livewire.com/docs/lifecycle-hooks and here https://developer.snapappointments.com/bootstrap-select/methods/#selectpickerrender),我认为下面的代码应该修复它:
<script>
document.addEventListener("livewire:load", function(event) {
window.livewire.hook('afterDomUpdate', () => {
$('select').selectpicker('refresh');
});
});
</script>
但这行不通。我也尝试过:
$('select').selectpicker();
and
$('select').selectpicker('render');
都在里面afterDomUpdate
,这也不太有效。如果我从控制台调用所有这些函数,DOM 不会更新<select>
元素,所以确实这些功能似乎不起作用。
如果其他人遇到这个问题,这里是你如何做的。
<div wire:ignore id="for-bootstrap-select">
<select class="form-control" data-container="#for-bootstrap-select">
@foreach($data as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
</select>
</div>
Reason 来自 Livewire 的创建者本人:Caleb! https://github.com/livewire/livewire/issues/45#issuecomment-513228288
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)