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

166
Visualizações
Modificación de un objeto profundamente anidado dentro de una matriz BehaviorSubject

Estoy creando una aplicación en angular. Mi servicio DocumentService contiene un BehaviorSubject de una matriz de Documentos.

 documents: BehaviorSubject<Document[]>

Aquí están las definiciones de las clases que tengo:

 class Document { name: string files: File[]; } class File { pages: Page[]; } class Page { data: any; scale: number; }

Mi pregunta es, ¿cuál es la mejor manera de actualizar la propiedad de escala en una página? Para esto tendría que bajar al documento, al archivo y luego a la página para modificarlo. Sin embargo, no puedo modificarlo en su lugar ya que tengo que usar this.documents.next(newDocumentsArray) . El problema es que la copia profunda no funciona: JSON.parse(JSON.stringify(...)) me da un error de estructura circular, mientras que las otras formas ( .map , Object.assign , ...) solo me dan superficial copias que luego modifican la página en su lugar, que es algo que no podemos hacer.

¿Algun consejo? Gracias

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Si desea mantener su estructura profunda actual, deberá profundizar:

 const newDocs = oldDocs.map(doc => { if (doc !== docToChange) { return doc; } else { return { ...doc, files: doc.files.map(file => ({ ...file, pages: file.pages.map(page => { // do page change here }) })) }; } });

Sugeriría un cambio a una estructura similar a una Entidad plana, donde todos los Documentos, Archivos y Páginas se almacenan por ID único en diccionarios separados, y la matriz de files de un Documento contiene los ID de sus Archivos, con lo mismo para los Archivos que se refieren a sus Paginas. ¿Tiene sentido?

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