• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

106
Views
Cómo usar contenteditable para cada elemento de una matriz en Angular

He estado luchando para solucionar algunos problemas con div contenteditable en Angular. Los problemas son los siguientes:

  1. Tengo cada elemento de la lista de matrices con su propio contenteditable pero con el mismo nombre de referencia de valor. El problema es que cada vez que intento enviar el contenido a la base de datos, solo el primer contenido no devuelve una cadena vacía, el resto de los elementos solo devuelven cadenas vacías una y otra vez. No estoy seguro de cómo solucionarlo después de navegar por Internet indefinidamente.

En app.component.ts tengo esto:

 @ViewChild("new_message_ref")newMessageRef?: ElementRef; newMessage:any = "" //This the method that should be sending message content to backend //but only sending successfully the date newMessage(user: any) { var messages = this.angFireBD.list("users/" + user.$key + "/messages"); messages.update(this.userService.currentUserUid, { //and this the content I've been sending to database content: this.newMessageRef?.nativeElement.innerText, sent: new Date().toLocaleDateString() }) }

En app.compenent.html, tengo esto:

 <li *ngFor="let user of allUsers"> <div #new_message_ref type="text" contenteditable="true" placeholder="Send a message to introduce yourself" [textContent]="newMessage" > </div> ... <span (click)="newMessage(user)">Send</span> </li>
  1. El último problema es que no puedo vincular una variable dentro del marcador de posición, pero puedo vivir con eso ahora mismo, ya que estoy mucho más preocupado por el primer problema:
 <!-- This is my 2nd issue --> <div placeholder="{{myVar}}"></div>

¡¡¡GRACIAS!!!

over 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

use @ViewChildren , no ViewChild. ViewChild solo obtiene el primero de todos, por ejemplo:

 @ViewChildren('new_message_ref') messages:QueryList<ElementRef>

Vea que puede obtener el elemento ref en la posición "índice" usando

 const element=this.messages.find((_,i)=>i==index) console.log(element.nativeElement.innerText)

O recorrer todo

 this.messages.forEach(=>{ console.log(x.nativeElement.innerText) })

Ver los documentos sobre QueryList

over 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error