Bootstrap выбор не работает после Laravel рендеринга livewire - PullRequest
1 голос
/ 14 марта 2020

У меня есть элемент Bootstrap selectpicker , который отлично работает при первом рендере. Он инициализируется с помощью:

$(document).ready(function () {
    $('select').selectpicker();
});

Но после вызова функции визуализации livewire элемент <select> больше не визуализируется как Bootstrap selectpicker.

Просмотр обоих документов (соответствующие разделы *) 1009 * здесь и здесь ), я решил, что код ниже должен это исправить:

<script>
    document.addEventListener("livewire:load", function(event) {
        window.livewire.hook('afterDomUpdate', () => {
            $('select').selectpicker('refresh');
        });
    });
</script>

Но это не работает. Я также пробовал:

$('select').selectpicker();

и

$('select').selectpicker('render');

в пределах afterDomUpdate, что также не работает. Если я вызываю все эти функции из консоли, DOM не обновляет элемент <select>, поэтому, похоже, эти функции действительно не работают.

1 Ответ

0 голосов
/ 15 марта 2020

Я думаю, вы переинициализируете свой селектор выбора каждый раз, когда обновляете dom. Вот почему всякий раз, когда вы используете

 $('select').selectpicker('refresh'); 

внутри вашего livewire-хука, это в основном обновляет инициализированный fre sh селектор выбора в вашем домике. Я догадываюсь об этом, потому что согласно вашему коду и приведенному выше заявлению это должно работать, если за сценой не случится что-то не так, как я упоминал.

Я не знаю, имеет ли я смысл. пожалуйста, убедитесь, что вы реинициализируете его перед обновлением. дай мне знать

...