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

217
Views
¿Cómo obtener una referencia a un botón en la plantilla que se repite ng para que sea editable en angular2/4?

Tengo el siguiente javascript y html que me permite hacer clic en un botón para editar texto, ¿cómo lo hago para que funcione con angular2 si hay varios botones?

 <button>Button Text Could Be Editable</button><br /> <button (click)="modifyText()" data-edit="0">Edit Button Above</button> <script> function modifyText() { this.previousElementSibling.previousElementSibling.contentEditable = !!(+(this.dataset.edit = this.dataset.edit == 0 ? 1 : 0)) } </script>

En angular2, tengo una lista de estudiantes en mi alcance que quiero que se represente en un botón, pero puedo "Editar" su nombre en el botón solo si hago clic en el botón específico.

 // this is part of the component this.students = ['John', 'Jacob', 'Patty']; // this is the html in my template for the component <button *ngFor="name of students" (click) = "modifyText()">{{name}}</button><br />

¿Cómo modifico la función modifyText() dentro del componente para que en angular2 pueda obtener una referencia al botón específico y hacerlo editable como en mi ejemplo no angular para un solo botón?

Estoy buscando una respuesta usando la última versión de Angular, ya que sé que esto ha cambiado un par de veces.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede obtener una referencia al elemento HTML en el que se hizo clic utilizando el objeto $event . La mayoría de las guías le dicen que use la propiedad de target del objeto de evento, pero me gusta usar currentTarget porque:

Siempre hace referencia al elemento al que se ha adjuntado el controlador de eventos, a diferencia de event.target, que identifica el elemento en el que se produjo el evento.

Esto garantiza que obtendré la referencia correcta al elemento HTML en el que estoy escuchando el click . En la plantilla, pase el elemento HTML actual como un parámetro así:

 <button *ngFor="name of students" (click)="modifyText($event.currentTarget)">{{name}}</button>

y luego recibirlo en el componente así:

 public modifyText(htmlElement: HTMLElement) { this.dataset.edit = !this.dataset.edit; htmlElement.contentEditable = this.dataset.edit; htmlElement.focus(); }
over 4 years ago · Santiago Trujillo 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!