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.

Puedo replicarlo fácilmente diciéndole a mi API que espere unos segundos antes de responder con los datos de la listaEstoy usando la última versión de Ember (1.0 final!)Estoy usando los últimos datos de brasas debuilds.emberjs.comprices es un atributo de tipo "raw" (personalizado), pero es el mismo si excluyo elauthor campo de la lista de respuestas

Si 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!)

Respuestas a la pregunta(0)

Su respuesta a la pregunta