AngularJS Select (cuadro de selección)
AngularJS puede usar arrays u objetos para crear opciones de lista desplegable.
Usar ng-options para crear un cuadro de selección
En AngularJS podemos usarng-optionla directiva para crear una lista desplegable, cuyos elementos se generan recorriendo objetos y arrays, como en el siguiente ejemplo:
Ejemplo
Pruébalo »
ng-init establece el valor seleccionado por defecto.
ng-options y ng-repeat
También podemos usarng-repeatla directiva para crear listas desplegables:
ng-repeatLa directiva recorre el código HTML mediante arrays para crear listas desplegables, perong-optionsla directiva es más adecuada para crear listas desplegables, tiene las siguientes ventajas:
Usarng-optionslas opciones son objetos,ng-repeates una cadena.
¿Cuál es mejor?
Supongamos que usamos el siguiente objeto:
$scope.sites = [
{site : "Google", url : "http://www.google.com"},
{site : "Ejemplo", url : "http://www.example.com"},
{site : "Taobao", url : "http://www.taobao.com"}
];
ng-repeatTiene limitaciones, el valor seleccionado es una cadena:
Ejemplo
Usandong-repeat:
<option ng-repeat="x in sites" value="{{x.url}}">{{x.site}}</option>
</select>
<h1>Has seleccionado:{{selectedSite}}</h1>
Pruébalo »
Usandong-optionsla directiva, el valor seleccionado es un objeto:
Ejemplo
Usandong-options:
</select>
<h1>Has seleccionado:{{selectedSite.site}}</h1>
<p>La URL es:{{selectedSite.url}}</p>
Pruébalo »
Cuando el valor seleccionado es un objeto, podemos obtener más información y la aplicación es más flexible.
Fuente de datos como objeto
En los ejemplos anteriores usamos arrays como fuente de datos; a continuación usaremos objetos como fuente de datos.
$scope.sites = {
site01 : "Google",
site02 : "Ejemplo",
site03 : "Taobao"
};
ng-optionsUsar objetos es muy diferente, como se muestra a continuación:
Ejemplo
Usando un objeto como fuente de datos,xcomo clave (key),ycomo valor (value):
</select>
<h1>El valor que has seleccionado es:{{selectedSite}}</h1>
Pruébalo »
El valor que has seleccionado es el value en el par key-valuedel parvalue。
valueen key-valueEn el par también puede ser un objeto:
Ejemplo
El valor seleccionado está en el par key-valuedel parvaluey en este caso es un objeto:
car01 : {brand : "Ford", model : "Mustang", color : "red"},
car02 : {brand : "Fiat", model : "500", color : "white"},
car03 : {brand : "Volvo", model : "XC90", color : "black"}
};
Pruébalo »
En el menú desplegable también se puede no usarkeydel par -valuekey, usar directamente las propiedades del objeto:
Ejemplo
</select>
Pruébalo »