Al cargar una entrada detallada y luego una lista de entradas, los datos de Ember eliminan los campos no establecidos en la lista de respuestas
tengo unBook
modelo, con varios atributos, p. ej.title
, author
yprices
. prices
Es una gran lista de información histórica de precios.
Cuando solicito una lista de libros de la API, excluyo laprices
campo para mantener la respuesta pequeña.
En la vista de detalles de un libro, solicito la información completa del libro (y renderizo un gráfico utilizando d3). ember-data recupera el único libro de la API, actualiza el modelo y todo está bien.
Mi libro de una sola página es unrecurso anidado de mi lista de libros de recursos:
App.Router.map ->
@resource 'books', ->
@resource 'book', path: ':book_id'
App.BooksRoute = Ember.Route.extend
model: ->
App.Book.find()
App.BookRoute = Ember.Route.extend
model: (params) ->
Book.find(params.book_id)
Cuando entro en la aplicación en la página de detalles del libro (/#/books/42
en lugar de/
), No puedo decir a qué solicitud responde primero mi API, el libro único o la lista de libros. A veces, los datos de un solo libro se procesan primero, luego los datos de la lista de libros entran y los datos de brasas sobrescriben los datos existentes con los nuevos recuperados.
Mi problema es este: losprices
El campo, que no está incluido en la respuesta de la lista de libros, se borrará del registro modelo si se recibe la respuesta de la lista de libros.después La única respuesta del libro.
Por lo tanto, mi pregunta: ¿Hay alguna manera de evitar que los datos de brasas sobrescriban los campos conundefined
?
Yo realmente no entiendo este comportamiento, también. ¿Es esto realmente un error? Veo que la actualización de un valor que la nueva respuesta API especifica comonull
Tiene sentido, pero reemplazando valores conundefined
Fue bastante sorprendente.
prices
es un atributo de tipo "raw" (personalizado), pero es el mismo si excluyo elauthor
campo de la lista de respuestasSi hay una alternativa a los datos de brasas que resuelven esto, estoy dispuesto a cambiar a eso (si no tiene otros grandes inconvenientes, actualmente ni siquiera estoy usandohasMany
!)