Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

187
Visualizações
Elemento iluminado - evento onlick en elemento secundario ranurado

tengo lo siguiente

 <custom-component> <div slot="form"> <form> bunch of input elements <span slot="inner"> <button type="submit" id="submitButton"></button> </span> <button type="Reset"></button> </form> </div> </custom-component>

¿Cómo escucho en el evento de clic el tipo de botón enviar desde el componente personalizado del componente principal? Por razones en las que no voy a entrar, hacer que toda la forma ranurada sea un componente no es una opción.

En el archivo del componente personalizado, esto es lo que probé

 <slot name='form' > <slot name='inner' @click=${this.handleSearch}> </slot> </slot>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Parece que necesitará cambiar algunas cosas para que esto funcione según lo previsto.

Primero, la ranura "interna" en su ejemplo no está haciendo nada. No puede tener una ranura anidada dentro de los niños de ranura renderizados DOM ligeros. Para probar esto y ver que esto es cierto, puede probar dos cosas.

  1. Elimine el elemento <slot name="inner"> y verá que el botón "Enviar" aún se muestra bien en HTML.
  2. En segundo lugar, el oyente @click en <slot name="inner"> nunca se activa. Intente moverlo a <slot name="form"> y verá que la devolución de llamada se activa como se esperaba.

Otro problema con el que se encontrará es que el Evento del navegador predeterminado que se muestra a través de shadowRoot no contiene ninguna información. Si console.log los datos en la devolución de llamada del evento, verá que todo lo que obtiene es {isTrusted: true} en lugar de la información más útil sobre eventos y elementos.

Dado que no puede crear el formulario dentro del componente web, la otra opción es manejar toda la lógica con JavaScript en una etiqueta <script> junto a su <custom-component> en HTML. Esto tiene sentido ya que está más cerca del uso previsto de los niños ranurados: poder agregar HTML arbitrario como niños a sus componentes web, pero su componente web no está necesariamente a cargo de nada relacionado con ese HTML, solo lo está representando. .

Si necesita estar a cargo de la representación, los eventos o la lógica relacionada con los elementos secundarios HTML, deben estar dentro del componente web o, de lo contrario, la lógica debe manejarse fuera del componente web.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda