Estoy poblando un menú desplegable mediante el uso de ng-options que está conectado a un controlador que a su vez está llamando a un servicio. Desafortunadamente, la información que entra es un desastre y necesito poder ordenarla alfabéticamente.Ordenar la lista desplegable alfabéticamente en AngularJS
Se da cuenta de que algo así como $.sortBy
lo haría, pero desafortunadamente no hizo jack. Sé que puedo ordenarlo a través de javascript con un método de ayuda function asc(a,b)
o algo así, pero me niego a creer que no haya una manera más clara de hacerlo y no quiero hinchar el controlador con métodos de ayuda. Es algo tan básico en principio, así que no entiendo por qué AngularJS no tiene esto.
¿Hay alguna manera de hacer algo como $orderBy('asc')
?
Ejemplo:
<select ng-option="items in item.$orderBy('asc')"></select>
Sería muy útil tener opciones en orderBy
para que pueda hacer lo que quiera, siempre que por lo general intenta ordenar los datos.
Mirando en el violín (o agregar una etiqueta de selección de ordenamiento al tutorial de Topo angular), obtener una opción para mostrar como 'seleccionado' - o incluso obtener la primera opción para mostrar - es un problema. Con Angular está en blanco? –
@DaveEveritt una forma de establecer un valor predeterminado (y para eliminar el elemento en blanco) es preseleccionar un elemento vinculado para 'seleccionado'. Para este ejemplo, puede hacer algo como '$ scope.selected = $ scope.friends [0]'. Ver [este violín] (http://jsfiddle.net/aBccw/142/) para una muestra de trabajo. – Gloopy
no funcionó para mí, pero esto sí: http://stackoverflow.com/a/18261445/2178340 – Gerson