Mam sytuację, w której isLoaded na DS.RecordArray zmienia się na true, ale zawartość, długość właściwości RecordArray jest nadal pusta, 0 w tym czasie i zmienia się tylko później.Ember danych: Wiedząc, kiedy RecordArray jest całkowicie wypełniony
Przykładowy kod (coffeescript):
@set('followRequests', App.FollowRequests.find())
...
whenDataLoads: (->
console.log @get('followRequests.isLoaded')
console.log @get('followRequests.length')
@set('content', @get('followRequests').toArray())
).observes('followRequests.isLoaded')
Pierwsze stwierdzenie jest prawdziwe dziennika podczas gdy drugi jest 0 i szablon, który korzysta z tych danych jest pusta. Kiedy widzę rzeczywiste żądanie AJAX widzę, że żądanie zwraca tablicę rekordów. A długość i treść RecordArray zmieniają jakiś czas później widziany w konsoli Browser wykonując:
App.Router.myController.get('followRequests').get('length')
---> 12
Jednak ten kod (poniżej) ma wypełnić treść w szablonie, ale działa 12 razy ...
whenDataLoads: (->
console.log @get('followRequests.isLoaded')
console.log @get('followRequests.length')
@set('content', @get('followRequests').toArray())
).observes('followRequests.length')
Jaki jest właściwy sposób wiedzieć, kiedy RecordArray jest całkowicie zaludnionych ... ??
Wierzę, że jest to błąd w Ember-data, otworzyłem [problem] (https://github.com/emberjs/data/issues/652) w sprawie śledzenia błędów w tej sprawie. Z przyjemnością uda się znaleźć obejście problemu. –
@AdrienCoquio, dzięki, dobrze wiedzieć, że ktoś inny również stoi w obliczu tego. Śledzę to, ale nie widzę żadnego możliwego obejścia, chociaż ... –