Estoy usando HTMX en mi proyecto Django para cambiar elementos en un formulario dependiendo de las selecciones anteriores. En algún momento uso un evento personalizado y lo escucho como se indica en la solución 3 aquí: https://htmx.org/examples/update-other-content/
Todo funciona como se esperaba, también cuando se usan dos disparadores separados por una coma.
Sin embargo, me gustaría pasar un encabezado, cuyo valor depende del evento que se use como disparador. Trigger foo -> encabezado A, barra de activación -> encabezado B. A continuación hay un código que debería ayudar a comprender.
<div hx-get="{% url 'someurl' %}" hx-trigger="foo from:body, bar from:body" hx-target="#sometarget" hx-swap="outerHTML" hx-headers='{"someheader":"foo_value"}' OR '{"someheader":"bar_value"}'>Hasta ahora, he intentado:
¿Alguna sugerencia?
HTMX proporciona el evento htmx:configRequest , donde podemos inspeccionar y modificar la carga útil antes de que HTMX envíe la solicitud. El evento desencadenante se encuentra en la propiedad evt.detail.triggeringEvent.type , el objeto de encabezado está en evt.detail.headers . Entonces, podemos agregar un encabezado personalizado según el evento desencadenante al incluir el siguiente fragmento de código JS en la página específica:
<script> document.body.addEventListener('htmx:configRequest', (evt) => { if (evt.detail.triggeringEvent.type === 'foo') { evt.detail.headers['someheader'] = 'foo_value' } if (evt.detail.triggeringEvent.type === 'bar') { evt.detail.headers['someheader'] = 'bar_value' } }) </script>