【发布时间】:2021-10-21 08:47:54
【问题描述】:
我正在使用带有 wire:ignore 的 select2 组件,我想在单击按钮后动态更新 select2 值。我使用事件设置了这个功能,并且事件工作正常,变量也被初始化。我无法更新此 select2 的公开视图。
我的刀
<select class="select2-example form-control" id="subjects" wire:model.lazy="subjects" name="subjects">
</select>
@push('scripts')
<script>
$('#subjects').select2({
maximumSelectionLength: 1,
minimumInputLength:2,
tags: false,
placeholder: 'Enter Subject(s)',
.... // this all works great
});
$('#subjects').on('change', function (e) {
let data = $(this).val();
@this.set('subjects', data);
});
// my event listener and it is working as well
Livewire.on('editSubject', subject => {
console.log(subject);
@this.set('subjects', subject);
$('#subjects').val(subject);
$('#subjects').trigger('change'); //the public view doesn't get updated
})
</script>
@endpush
到目前为止,我也尝试过浏览器调度事件。没有任何效果。解决方法是什么?非常感谢任何帮助。
【问题讨论】:
-
这段代码是否包含在根 div 容器中?为什么电线:忽略?
-
@Prospero 是的。这被包裹在一个根容器中,如果我删除线:忽略 select2 的样式丢失。
-
我将分享一个如何避免这种行为的示例