Podczas ładowania szczegółowego wpisu, a następnie listy wpisów, dane Ember usuwają pola nie ustawione w odpowiedzi na listę

mamBook model z kilkoma atrybutami, np.title, author iprices. prices to duża lista historycznych informacji o cenach.

Kiedy żądam listy książek z API, wykluczamprices pole, aby odpowiedź była mała.

W widoku szczegółów książki żądam kompletnych informacji o książce (i renderuję wykres za pomocą d3). ember-data pobiera pojedynczą książkę z API, aktualizuje model i wszystko jest w porządku.

Pojedyncza strona mojej książki tozagnieżdżony zasób mojego zasobu listy książek:

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)

Po wejściu do aplikacji na stronie szczegółów książki (/#/books/42 zamiast/), Nie mogę powiedzieć, które żądanie mój interfejs API odpowiada na pierwszą, pojedynczą książkę lub listę książek. Czasami dane pojedynczej książki są przetwarzane jako pierwsze, a następnie dane listy książek przychodzą i dane-ember zastępują istniejące dane nowo pobraną.

Moim problemem jest: Theprices pole, które nie jest uwzględnione w odpowiedzi na listę książek, zostanie usunięte z rekordu modelu, jeśli odpowiedź na listę książek zostanie odebranapo odpowiedź na jedną książkę.

Dlatego moje pytanie: Czy istnieje sposób na zapobieganie nadpisywaniu pól przez dane emberundefined?

Tak naprawdę nie rozumiem tego zachowania. Czy to rzeczywiście błąd? Widzę, że aktualizuje wartość, którą określa nowa odpowiedź API jakonull ma sens, ale zastępuje wartościundefined było dość zaskakujące.

Mogę to łatwo powtórzyć, mówiąc interfejsowi API, aby poczekał kilka sekund przed odpowiedzią na dane listyUżywam najnowszego wydania Embera (wersja 1.0!)Używam najnowszych danych emberbuilds.emberjs.comprices jest atrybutem typu „raw” (niestandardowy), ale jest taki sam, jeśli wykluczęauthor pole z odpowiedzi listy

Jeśli istnieje alternatywa dla danych ember, które rozwiązują ten problem, jestem skłonny przełączyć się na to (jeśli nie ma innych dużych wad - obecnie nawet nie używamhasMany!)

questionAnswers(0)

yourAnswerToTheQuestion