Проблема заключается в том, что я не могу заставить этот фильтр работать в моем конкретном случае. Я сузил круг проблем и могу предположить причину, по которой она не работает. Тем не менее, я не могу понять, как применить фильтр устранения дребезга.
Код: Выделить всё
{% if isOpen %}
{# list items using infinite scrolling* #}
{% endif %}
На данный момент я выяснил, что если data-action="input->live#action" и data-live-action-param="search" отсутствуют, дебаунсер работает нормально. Когда я добавляю эти два атрибута, дебаунсер больше не работает. Если бы я догадался, это могло быть связано с атрибутом data-action, который переопределяет запрос AJAX data-model и вместо этого отправляет один единственный запрос, обновляющий запрос и запускающий метод search.
Зачем мне нужны и data-model, и data-action (с сопровождающим его атрибутом data-live-action-param)?
В этом случае мне нужен способ сбросить нумерацию страниц. Самый простой способ — сбросить его в классе PHP через #[LiveAction]. Что касается модели данных, то, похоже, она отвечает за повторный рендеринг компонента. Если я удалю его, хотя значение query по-прежнему отправляется как часть AJAX-запроса data-action, это не вызывает повторную отрисовку. Кроме того, я не знаю, как добавить фильтр устранения дребезжания в атрибут data-action.
Простое решение — перехватить запрос AJAX в контроллере Stimulus и добавить туда средство устранения дребезжания вручную. Однако в идеале я бы хотел избегать этого метода, поскольку он кажется довольно хакерским и добавляет ненужную сложность к проблеме, которую можно легко решить.
Я хотел бы знать, сталкивались ли другие с подобной ситуацией и какая идея им пришла в голову. Любые предложения приветствуются! Живые компоненты для меня все еще относительно новы, поэтому есть большая вероятность, что я неправильно понимаю, как мне следует использовать эти атрибуты. Если да, дайте мне знать!
ps. Я заметил, что в документации Symfony UX Live Components модель данных используется преимущественно для элементов ввода (
Код: Выделить всё
inputПодробнее здесь: https://stackoverflow.com/questions/798 ... ata-action
Мобильная версия