Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

304
Vistas
Ember Data: carga diferida de datos secundarios de un modelo sin volver a crear objetos creados previamente

Soy nuevo en ember-data. Estoy tratando de cargar la lista de comentarios desde una API usando varias llamadas a la API. La función de lista de comentarios funciona como se muestra a continuación,

  • Un objeto de comentario puede tener un comentario principal o comentarios secundarios (respuestas)
  • Todos los comentarios (hijos y padres) de diferentes hilos de comentarios se enumeran en una sola lista de comentarios mediante una primera llamada a la API.
  • Si el usuario hace clic en un comentario específico de la lista anterior, aparecerá el hilo de comentarios respectivo. Carga de comentarios de padres o hijos respectivos mediante la segunda llamada a la API

El modelo de comentario se implementa de la siguiente manera,

 export default CommentModel.extend( { parent: computed(function() { return get(this, 'store').queryRecord('comment', { _overrideURL: `comments/${get(this, 'id')}/parent`, }); }), children: computed(function() { return get(this, 'store').query('comment', { _overrideURL: `comments/${get(this, 'id')}/children`, }); }), ...

Como esta implementación, si el usuario hace clic en un comentario secundario (respuesta) de la lista de comentarios, la segunda llamada a la API cargará el comentario principal respectivo y el comentario principal volverá a cargar sus comentarios secundarios. Ese comportamiento hace que se vuelva a cargar el componente de la lista de comentarios en la interfaz de usuario.

¿Hay alguna otra forma en ember-data para la relación de carga diferida sin crear objetos ya existentes?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si realmente necesita ir por ese camino, puede intentar realizar un findRecord en lugar de un queryRecord y usar adapterOptions para personalizar el método urlForFindRecord del adaptador de su modelo.


TL;DR

Por qué no deberías:

En mi humilde opinión, tiene un problema de flujo de datos en su diseño propuesto.

No debería ejecutar código asíncrono dentro de una propiedad calculada (ni devolver un objeto inmutable como respuesta de queryRecord ).

Las tareas funcionan muy bien para ese propósito.

No debería tener su modelo para cargar datos (eso debería ser responsabilidad de la ruta), lo que viola los principios MVC y DDAU.

Hay un gran artículo de 2015 sobre eso.

De hecho, desde ember octane, no debería usar propiedades calculadas en absoluto, han sido reemplazadas por captadores reales y propiedades rastreadas .

más sobre eso

Ember es un gran marco, ¡buena suerte en tu viaje!

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda