2012-09-25 4 views
8

Muszę wiedzieć, ile wierszy określonego zasobu (App.User) istnieje w sumie.Zwraca liczbę całkowitych wierszy w danych embera żądanie `find` lub` findAll`

Próbowałem go zwrócić w odpowiedzi, ale Ember narzeka na brak odwzorowanych właściwości i oczekuje tylko tablicy rekordów (users: [ "john", "fred"]). Nie chcę wysyłać dodatkowych zapytań do serwera.

Czy jest jakiś czysty sposób, aby to osiągnąć za pomocą Ember?

+0

+1, zastanawiałem się nad tym w kontekście [paginacja] (http://stackoverflow.com/questions/12482977/does-a-pagination-mixin-exist- for-ember-js-yet) – dechov

+0

Dokładnie! Muszę wiedzieć, ile rekordów jest w zestawie wyników i użyć go do paginacji ... – korCZis

Odpowiedz

4

Nie musisz wykonywać dodatkowych zapytań na serwer. Po uzyskaniu danych w magazynie danych z serwera, to pozostanie tam chyba jakiś rekord jest brudny i uruchomieniu store.commit

Tak, po masz swoje rekordy mówiąc

users = App.User.find() 

można po prostu zrobić users.get('length') i otrzymasz długość. Gdy to zrobisz, dodatkowe zapytanie do serwera nie zostanie wygenerowane.

4

Jeśli chcesz to w szablonie kierownicy, możesz zrobić {{this.length}}.

0

Rozwiązałem ten problem, implementując w adapterze handleResponse i modyfikując odpowiedź w sposób oczekiwany przez Ember.

Powiedzmy uzyskać odpowiedzi od serwera podobnego do tego:

Moja implementacja handleResponse wygląda tak:

handleResponse (status, headers, payload, requestData) { 
    let parsedPayload = { 
    users: payload.users, 
    meta: { 
     total: payload.count 
    } 
    }; 
    return this._super(status, headers, parsedPayload, requestData); 
} 

Wtedy mogę metadane modelu w sposób Ember documentation specifies it

Powiązane problemy