5

mam dynamiczny model danych pochodzących z pomocą websocket, który wygląda tak:Korzystanie orderby na NG-repeat z tablicy wielowymiarowej

var results = [ 
    [ 
     {name:'A'}, 
     {price: 0.00} 
    ], 
    [ 
     {name:'C'}, 
     {price: 0.00} 
    ], 
] 

Używam NG-repeat następująco:

ng-repeat="result in results" 

Ilekroć mieć dostęp do jednej z tablic w tablicy wynikowej zrobić:

result[0].name 

problem mam jest to, że ord Filtr Erby na ngRepeat nie wydaje się, aby pozwolić mi to zrobić:

ng-repeat="result in results | orderBy: result[0].name 

Może to podstawowe nieporozumienie w jaki kątowe działa, ale nie rozumiem, dlaczego to nie będzie działać. Czy jest to niepoprawna składnia, czy jest to spowodowane tym, że mój model danych jest dynamiczny? Czy powinienem ustawić $ scope. $ Gdzieś pasuje?

Próbowałem z cytatami i próbowałem ustawić predykat w funkcji, która początkowo analizuje dane, ustawiając predykat dla każdego wystąpienia wyniku.nazwa, ponieważ przechodzi przez to, ale to też nie praca.

Każda pomoc jest bardzo doceniana.

+0

przeczytać 'docs orderBy', wyjaśniają, o co prosicie – charlietfl

+0

@tymeJV: Problem polega na tym, że dana tablica zawiera tablice, a nie pojedyncze obiekty. –

+0

@HimmetAvsar - Ahh, nie widziałem tego na pierwszy rzut oka. – tymeJV

Odpowiedz

10

To pytanie jest naprawdę interesujące. Ponieważ polecenie orderBy będzie korzystało z bieżącego obiektu, musisz odpowiednio ustawić łańcuch zamówienia.

będzie to rade:

ng-repeat="result in results | orderBy: 'this[0].name' 
+0

Genialny! Dzięki za przydział @HimmetAvsar, to było dokładnie to. –