Live Components Symfony UX — фильтр устранения дребезга для `data-model` с атрибутом `data-action`Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Live Components Symfony UX — фильтр устранения дребезга для `data-model` с атрибутом `data-action`

Сообщение Anonymous »

У меня есть меню, использующее Live Components, которое показывает, загружает больше и фильтрует список брендов. Он показывает список брендов с флажком для каждого, который действует как опция фильтрации на странице. Для входных данных поиска (поиск по названию бренда) я хотел бы применить фильтр debounce(200)|inputName к атрибуту data-model для улучшения пользовательского интерфейса.
Проблема заключается в том, что я не могу заставить этот фильтр работать в моем конкретном случае. Я сузил круг проблем и могу предположить причину, по которой она не работает. Тем не менее, я не могу понять, как применить фильтр устранения дребезга.

Код: Выделить всё


{% 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 модель данных используется преимущественно для элементов ввода (, textarea), тогда как атрибут data-action используется преимущественно в элементах кнопок. Я не уверен, имеет ли это какое-либо отношение к проблеме, но это может указывать на мое непонимание того, как работают живые компоненты.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ata-action
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»