Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

249
Views
Referencia del elemento Vue.js en el atributo

Tengo el siguiente código:

 <input type="text" @input="disableField($event.target)" :disabled="isFieldDisabled(????)" />

Quiero pasar al método isFieldDisabled el mismo valor que obtengo en $event.target: la referencia del elemento. No puedo encontrar la manera de cómo hacer esto. Sé que podría usar :ref pero en este caso necesito hacerlo como se muestra arriba.

Este es solo el caso de uso de ejemplo. Sé que para deshabilitar el campo puedo hacerlo mejor, pero quiero mostrar el problema de la manera más simple.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Esto no es posible de la forma en que lo pides.

  • La forma en que Vue funciona con VNodes, el elemento no existirá la primera vez que intente evaluar disabled : Vue evalúa las propiedades para determinar cómo debe verse el DOM y luego crea los elementos para que coincidan. Como aquí :

    Tenga en cuenta que solo puede acceder a la referencia después de montar el componente . Si intenta acceder a input en una expresión de plantilla, será null en el primer procesamiento. ¡Esto se debe a que el elemento no existe hasta después del primer renderizado!

  • Con los componentes asincrónicos, los atributos deberán tener valores bien definidos incluso si aún no hay un componente para representar, y mucho menos elementos bien definidos para posicionar allí.
  • Con los componentes de fragmento, nunca habrá un único elemento HTML con el que interactuar, porque el componente representa varios elementos HTML de nivel superior.

Los eventos no tienen que seguir las mismas reglas, porque está definiendo controladores: los eventos DOM provendrán de una fuente y se aplicarán a un destino, y los componentes ausentes no emiten eventos. Incluso entonces, la sintaxis le da acceso a $event , no a $el para una referencia directa a un elemento.

La forma más sencilla es usar una ref para llegar al objeto después de que Vue lo cree, sujeto a las mismas reglas de ref nulas en la primera representación anteriores. Si necesita pasar un controlador a un método multipropósito con la forma de getFoo(argument) , es posible que su argumento deba ser una cadena o una clave de enumeración que defina, no el elemento en sí.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!