7

Jest taka tablica:Jak sortować tablicę w opcjach Ng według klucza?

month: Array[13]0: "M"1: "January"2: "February"3: "March"4: "April"5: "May"6: "June"7: "July"8: "August"9: "September"10: "October"11: "November"12: "December" 

zrobić:

ng-options="key as value for (key, value) in data.month | orderBy:key" 

Ale pojawia niesegregowanych listy select.

+0

Tablica jest już w porządku kalendarza, dlaczego ją sortujesz? – tvanfosson

Odpowiedz

10

Aby korzystać z funkcji śledzenia za pomocą filtrów, należy użyć track by.

Markup

ng-options="key as value for (key, value) in data.month | orderBy:'key' track by key" 

Aktualizacja

Ten orderBy nigdy nie będzie działać, ponieważ mają dosłowne tablicę. Trzeba przekonwertować tej tablicy do JSON podobnego przedmiotu, który będzie zorganizowany jak [{id: 0, value: "M"}, {id: 1, value: "January"},......]

HTML

ng-options="item.id as item.value for items in data.month | orderBy:'id'" 

Demo Plunkr

+0

Otrzymuję pustą listę wyboru według twojego rozwiązania – Faud

+0

@Faud próbuję dodać pojedynczy '' 'na klucz jako @solid_luffy powiedział –

+0

Również jest taki sam. Nie działa. Pojawia się błąd: Błąd: $ parsować: lexerr Błąd Lexera – Faud

2

brakujące dwa ' „s. Ta część, orderBy: key powinny być orderBy:'key'

Spróbuj tego:

ng-options="key as value for (key, value) in data.month | orderBy: 'key'" 
1

Aby rozwiązać ten problem, trzeba sformatować ng-option jak jak:

day.id as day.value for day in data.month 

A tablica data.month byłoby jak jak powiedział użytkownik pankajparkar

Powiązane problemy