unidades:07_rutas:03_parametros
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| unidades:07_rutas:03_parametros [2014/08/26 15:29] – admin | unidades:07_rutas:03_parametros [2014/12/21 08:51] (actual) – [Ruta indefinida] admin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Parámetros ====== | + | ====== |
| - | En este tema vamos a ver como incluir parámetros en las rutas. Antes de explicar en que consiste, volvamos a ver como funciona gmail. | + | En este tema vamos a ver cómo incluir parámetros en las rutas. Antes de explicar en qué consiste, volvamos a ver cómo funciona gmail. |
| Página " | Página " | ||
| + | |||
| {{: | {{: | ||
| - | Estamos en la página de recibidos pero estamos viendo un correo concreto. Para indicar | + | Estamos en la página de recibidos pero estamos viendo un correo concreto. Para indicar |
| + | |||
| + | El valor del correo a mostrar lo indicaremos como parámetro en la ruta ya que no es un valor fijo sino que queremos que nos pasen el valor del parámetro en variable para poder usar ese valor. | ||
| + | |||
| + | |||
| + | ===== Definir el parámetro ===== | ||
| + | Para poder definir un parámetro en la URL es tan sencillo como incluir el nombre de la variable en el path de la ruta precedido por ":" | ||
| + | |||
| + | <sxh js; | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | * Línea 1: Ahora en el path hemos añadido una variable llamada '' | ||
| + | |||
| + | Ahora, vamos a poner ejemplos de posibles paths que casarían con la ruta que acabamos de definir y el valor de la variable '' | ||
| + | |||
| + | ^ Path ^ valor '' | ||
| + | | / | ||
| + | | /pagina1/34 | 34 | | ||
| + | | / | ||
| + | | /pagina1/_ | _ | | ||
| + | | / | ||
| + | |||
| + | |||
| + | <note tip> | ||
| + | |||
| + | Pero **NO** podrá tener la siguientes formas: | ||
| + | * /pagina1 | ||
| + | * /pagina1/ | ||
| + | * / | ||
| + | * / | ||
| + | * / | ||
| + | |||
| + | Es decir que si no tiene nada tras la segunda barra o tiene algo mas allá de la tercera barra el path no casará. | ||
| + | |||
| + | |||
| + | ===== Más de un parámetro ===== | ||
| + | ¿Qué pasa si queremos 2 variables porque nos interesan 2 //barras//? Se pueden | ||
| + | |||
| + | <sxh js> | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | Vamos ahora a poner ejemplos de posibles paths que casarían con la ruta que acabamos de definir y el valor de las variables '' | ||
| + | |||
| + | ^ Path ^ valor '' | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | |||
| + | |||
| + | Tambien podemos definir partes // | ||
| + | |||
| + | <sxh js> | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | Vamos ahora a poner ejemplos de posibles paths que casarían con la ruta que acabamos de definir y el valor de las variables '' | ||
| + | |||
| + | ^ Path ^ valor '' | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | |||
| + | |||
| + | ===== Ruta indefinida ===== | ||
| + | Hemos visto cómo podemos definir exactamente la forma de la ruta pero con parámetros, | ||
| + | |||
| + | <sxh js> | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | ^ Path ^ valor '' | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | | / | ||
| + | |||
| + | |||
| + | Como en el caso anterior, también podríamos definir partes estáticas antes o después o varias variables. | ||
| + | |||
| + | ===== Rutas optativas ===== | ||
| + | Por último , ¿qué pasa si hay partes de la ruta que pueden o no pueden estar? AngularJS nos permite añadir una incógnita al final de parámetro. | ||
| + | |||
| + | <sxh js> | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | ^ Path ^ valor '' | ||
| + | | / | ||
| + | | /pagina5/ | '' | ||
| + | | / | ||
| + | |||
| + | Si no está la parte optativa su valor será '' | ||
| + | |||
| + | Como en el caso anterior también podríamos definir partes estáticas antes o después o varias variables. Y por supuesto se pueden mezclar todo lo que hemos visto en la misma ruta. | ||
| + | |||
| + | ===== Obtener el parámetro ===== | ||
| + | Ahora que hemos definido el parámetro, tenemos que poder obtener dicho valor. El valor se usa en el controlador ya que el controlador es el código JavaScript que está asociado a la página que acaba de cargarse gracias a la ruta. | ||
| + | |||
| + | La forma de obtener el valor es simplemente llamando al servicio [[https:// | ||
| + | |||
| + | Suponiendo la siguiente ruta: | ||
| + | <sxh js> | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | |||
| + | Podemos acceder a esos parámetros de la siguiente forma: | ||
| + | |||
| + | <sxh js> | ||
| + | app.controller(" | ||
| + | | ||
| + | }]); | ||
| + | </ | ||
| + | |||
| + | * Línea 1: Inyectamos el servicio de '' | ||
| + | * Línea 2: Hacemos uso de las propiedades '' | ||
| + | |||
| + | Como vemos es muy sencillo obtener el valor de los parámetros de las rutas. | ||
| + | |||
| + | <note important> | ||
| + | Recordad que el tipo de datos de los parámetros siempre es un " | ||
| + | |||
| + | Así que si queremos que sean un Integer o cualquier otro tipo tendremos que transformarlo nosotros. | ||
| + | </ | ||
| + | ==== QueryString ==== | ||
| + | Si la URL real incluye [[http:// | ||
| + | |||
| + | |||
| + | Por ejemplo si la URL fuera: | ||
| + | / | ||
| + | |||
| + | Las propiedades de '' | ||
| + | ^ Variable ^ Valor ^ | ||
| + | | variable1 | hola | | ||
| + | | variable2 | mundo | | ||
| + | | idCuenta | 345 | | ||
| + | | importe | 678 | | ||
| + | ===== Ejemplo ===== | ||
| + | En este ejemplo hemos puesto todas las rutas que hemos visto en este tema y ejemplos de llamadas a ellas. | ||
| + | |||
| + | |||
| + | <note important> | ||
| + | |||
| + | {{url> | ||
| - | El valor del correo a mostrar lo indicaremos como parámetro en la ruta ya que no es un valor fijo sino que queremos que nos lo pasen el valor del parámetro en variable. | + | ===== Referencias ===== |
| + | * [[https:// | ||
| + | * [[https:// | ||
unidades/07_rutas/03_parametros.1409059795.txt.gz · Última modificación: por admin
