unidades:03_servicios:02_http
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:03_servicios:02_http [2014/07/25 13:05] – admin | unidades:03_servicios:02_http [2014/08/30 13:26] (actual) – admin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== 3.2 $http ====== | ====== 3.2 $http ====== | ||
| - | El servicio [[https:// | + | El servicio [[https:// |
| <note important> | <note important> | ||
| Línea 7: | Línea 7: | ||
| - | Para explicar el servicio de '' | + | <note tip> |
| + | Si quieres saber mas sobre JSON puede ir al tema [[unidades: | ||
| + | Y si quieres saber sobre HTTP puede ir al tema [[unidades: | ||
| + | </ | ||
| + | Para explicar el servicio de '' | ||
| + | |||
| + | El contenido del fichero '' | ||
| + | <sxh js; | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <note tip> | ||
| + | No está el campo " | ||
| + | </ | ||
| ====== La instancia ====== | ====== La instancia ====== | ||
| Lo primero que tenemos que hacer es obtener una referencia al servicio '' | Lo primero que tenemos que hacer es obtener una referencia al servicio '' | ||
| Línea 24: | Línea 58: | ||
| - | * Línea 3: Vemos como ahora se inyecta el nuevo servicio , '' | + | * Línea 3: Vemos cómo ahora se inyecta el nuevo servicio , '' |
| Línea 88: | Línea 122: | ||
| ====== Los datos ====== | ====== Los datos ====== | ||
| - | Si todo ha funcionado correctamente podremos obtener el objeto JavaScript correspondiente al String JSON que nos han pasado, para ello llamaremos a la función '' | + | Si todo ha funcionado correctamente podremos obtener el objeto JavaScript correspondiente al String JSON que nos han pasado. Para ello llamaremos a la función '' |
| La función que le pasaremos tendrá 4 argumentos que son los siguientes: | La función que le pasaremos tendrá 4 argumentos que son los siguientes: | ||
| - | * **data**: Un objeto JavaScript correspondiente | + | * **data**: Un objeto JavaScript correspondiente |
| * **status**: Es el estado HTTP que ha retornado. Su valor siempre será entre 200 y 299 ya que si se llama a esta función significa que la petición ha tenido éxito. | * **status**: Es el estado HTTP que ha retornado. Su valor siempre será entre 200 y 299 ya que si se llama a esta función significa que la petición ha tenido éxito. | ||
| * **headers**: | * **headers**: | ||
| * **config**: El mismo objeto '' | * **config**: El mismo objeto '' | ||
| + | |||
| <note tip> | <note tip> | ||
| Línea 113: | Línea 148: | ||
| response.success(function(data, | response.success(function(data, | ||
| $scope.seguro=data; | $scope.seguro=data; | ||
| - | }) | + | }); |
| }]); | }]); | ||
| Línea 119: | Línea 154: | ||
| //No hemos mostrado el resto de líneas del controlador para mejorar la legibilidad// | //No hemos mostrado el resto de líneas del controlador para mejorar la legibilidad// | ||
| - | * Línea 11: Llamamos a la función '' | + | * Línea 11: Llamamos a la función '' |
| - | * Línea 12: Asignamos los datos del servidor a nuestro objeto '' | + | * Línea 12: Asignamos los datos del servidor a nuestro objeto '' |
| <note important> | <note important> | ||
| - | La línea 12 tiene mucha mas importancia de la que parece | + | La línea 12 tiene mucha más importancia de la que parece, sólo que AngularJS nos lo hace todo muy sencillo. |
| - | Como ya hemos dicho parámetro '' | + | Como ya hemos dicho, el parámetro '' |
| El que se actualice automáticamente el modelo es lo que hace que tengamos que usar '' | El que se actualice automáticamente el modelo es lo que hace que tengamos que usar '' | ||
| </ | </ | ||
| + | |||
| + | <note tip> | ||
| + | Recuerda que la llamada a nuestra función de la línea 11 se hace de forma asíncrona tal y como se hacen las peticiones AJAX | ||
| + | </ | ||
| + | |||
| + | ====== El error ====== | ||
| + | Si ocurre algún error, es decir si se retorna un 400, 500 ,etc, no se llamará a la función de '' | ||
| + | |||
| + | No vamos a extendernos mas en esta función ya que funciona igual que '' | ||
| + | <sxh js; | ||
| + | var app=angular.module(" | ||
| + | |||
| + | app.controller(" | ||
| + | var config={ | ||
| + | method:" | ||
| + | url:" | ||
| + | } | ||
| + | | ||
| + | var response=$http(config); | ||
| + | | ||
| + | response.success(function(data, | ||
| + | $scope.seguro=data; | ||
| + | }); | ||
| + | | ||
| + | response.error(function(data, | ||
| + | alert(" | ||
| + | }); | ||
| + | | ||
| + | |||
| + | }]); | ||
| + | </ | ||
| + | //No hemos mostrado el resto de líneas del controlador para mejorar la legibilidad// | ||
| + | |||
| + | * Línea 15: Llamamos a la función '' | ||
| + | * Línea 16: Mostramos al usuario un mensaje de error indicando el valor del estado HTTP. | ||
| + | |||
| + | <note tip> | ||
| + | Hacer un '' | ||
| + | </ | ||
| + | |||
| + | ====== Uniendo todo el código ====== | ||
| + | Ya hemos visto cómo funciona pero el código nos ha quedado un poco largo. Lo hemos hecho así para ir explicando todo poco a poco, pero vamos a condensarlo todo para que quede más corto y legible. | ||
| + | |||
| + | Un detalle a comentar antes es que las funciones '' | ||
| + | |||
| + | El código finalmente quedaría así: | ||
| + | |||
| + | <sxh js; | ||
| + | var app=angular.module(" | ||
| + | |||
| + | app.controller(" | ||
| + | |||
| + | $http({ | ||
| + | method: ' | ||
| + | url: ' | ||
| + | }).success(function(data, | ||
| + | $scope.seguro=data; | ||
| + | }).error(function(data, | ||
| + | alert(" | ||
| + | }); | ||
| + | | ||
| + | |||
| + | }]); | ||
| + | </ | ||
| + | //No hemos mostrado el resto de líneas del controlador para mejorar la legibilidad// | ||
| + | |||
| + | Vemos cómo hemos puesto la configuración directamente en la llamada en vez de crear un objeto '' | ||
| + | |||
| + | |||
| + | <note warning> | ||
| + | El poner en el controlador la llamada a '' | ||
| + | |||
| + | El ejemplo correcto se explicará en [[unidades: | ||
| + | </ | ||
| + | ====== Ejemplo ====== | ||
| + | Finalmente el controlador completo quedaría de la siguiente forma: | ||
| + | |||
| + | <sxh js; | ||
| + | var app=angular.module(" | ||
| + | | ||
| + | app.controller(" | ||
| + | $scope.seguro={ | ||
| + | nif:"", | ||
| + | nombre:"", | ||
| + | ape1:"", | ||
| + | edad: | ||
| + | sexo:"", | ||
| + | casado: | ||
| + | numHijos: | ||
| + | embarazada: | ||
| + | coberturas: { | ||
| + | oftalmologia: | ||
| + | dental: | ||
| + | fecundacionInVitro: | ||
| + | }, | ||
| + | enfermedades: | ||
| + | corazon: | ||
| + | estomacal: | ||
| + | rinyones: | ||
| + | alergia: | ||
| + | nombreAlergia:"" | ||
| + | }, | ||
| + | fechaCreacion: | ||
| + | } | ||
| + | | ||
| + | $log.debug(" | ||
| + | |||
| + | $http({ | ||
| + | method: ' | ||
| + | url: ' | ||
| + | }).success(function(data, | ||
| + | $scope.seguro=data; | ||
| + | }).error(function(data, | ||
| + | alert(" | ||
| + | }); | ||
| + | | ||
| + | }]); | ||
| + | </ | ||
| + | |||
| + | Como ya hemos explicado hemos añadido en la línea 3 la referencia al objeto '' | ||
| + | |||
| + | {{url> | ||
| + | |||
| + | ====== Referencias ====== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
unidades/03_servicios/02_http.1406286317.txt.gz · Última modificación: por admin
