unidades:03_servicios:10_ejemploseguro
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:10_ejemploseguro [2014/07/30 23:58] – [Ejemplo] admin | unidades:03_servicios:10_ejemploseguro [2014/08/29 22:15] (actual) – admin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== 3.10 Ejemplo servicio ====== | ====== 3.10 Ejemplo servicio ====== | ||
| - | En este tema retornamos | + | En este tema retornamos el ejemplo del seguro médico para añadir un '' |
| - | Al ver el servicio '' | + | Al ver el servicio '' |
| - | El servicio será un objeto llamado '' | + | El servicio será un objeto llamado '' |
| ===== La configuración ===== | ===== La configuración ===== | ||
| - | Nuestro servicio va a ser un '' | + | Nuestro servicio va a ser un '' |
| <sxh js> | <sxh js> | ||
| Línea 14: | Línea 14: | ||
| </ | </ | ||
| - | La contante | + | La constante |
| El provider tendrá un único método para configurarlo llamado '' | El provider tendrá un único método para configurarlo llamado '' | ||
| Línea 23: | Línea 23: | ||
| </ | </ | ||
| - | Fijaté como el nombre del provider es " | + | Fíjate cómo el nombre del provider es " |
| ===== El provider ===== | ===== El provider ===== | ||
| Línea 42: | Línea 42: | ||
| * Línea 1: Definimos el constructor de la clase '' | * Línea 1: Definimos el constructor de la clase '' | ||
| - | * Línea 3: Un método público llamado '' | + | * Línea 3: Un método público llamado '' |
| - | * Línea 6: El método '' | + | * Línea 6: El método '' |
| - | * Línea 7: Ahora la función de factoría crea el nuevo objeto de la clase '' | + | * Línea 7: Ahora la función de factoría crea el nuevo objeto de la clase '' |
| * Línea 11: Finalmente se registra el '' | * Línea 11: Finalmente se registra el '' | ||
| Línea 73: | Línea 73: | ||
| ===== El controlador ===== | ===== El controlador ===== | ||
| - | Por último nos queda ver como queda el controlador al usar el nuevo servicio. | + | Por último nos queda ver cómo queda el controlador al usar el nuevo servicio. |
| <sxh js; | <sxh js; | ||
| Línea 159: | Línea 159: | ||
| <sxh js; | <sxh js; | ||
| - | var app=angular.module(" | + | var app = angular.module(" |
| - | app.constant(" | + | function RemoteResource($http,baseUrl) { |
| - | + | this.get=function(fnOK, | |
| - | function RemoteResourceProvider() { | + | |
| - | var _baseUrl; | + | |
| - | this.setBaseUrl=function(baseUrl) { | + | |
| - | _baseUrl=baseUrl; | + | |
| - | } | + | |
| - | this.$get=[' | + | |
| - | return { | + | |
| - | get:function(fnOK, | + | |
| $http({ | $http({ | ||
| method: ' | method: ' | ||
| - | url: _baseUrl+'/ | + | url: baseUrl+'/ |
| }).success(function(data, | }).success(function(data, | ||
| fnOK(data); | fnOK(data); | ||
| Línea 180: | Línea 172: | ||
| }); | }); | ||
| } | } | ||
| - | | + | } |
| + | |||
| + | function RemoteResourceProvider() { | ||
| + | var _baseUrl; | ||
| + | this.setBaseUrl=function(baseUrl) { | ||
| + | _baseUrl=baseUrl; | ||
| + | } | ||
| + | this.$get=[' | ||
| + | return new RemoteResource($http, | ||
| }]; | }]; | ||
| } | } | ||
| - | app.provider(" | + | app.provider(" |
| - | app.config([' | + | |
| - | | + | |
| + | app.constant(" | ||
| + | app.config([' | ||
| + | | ||
| }]); | }]); | ||
| - | app.controller(" | + | |
| - | $scope.seguro={ | + | app.controller(" |
| - | nif:"", | + | $scope.seguro = { |
| - | nombre:"", | + | nif: "", |
| - | ape1:"", | + | nombre: "", |
| - | edad: | + | ape1: "", |
| - | sexo:"", | + | edad: undefined, |
| - | casado: | + | sexo: "", |
| - | numHijos: | + | casado: false, |
| - | embarazada: | + | numHijos: undefined, |
| - | coberturas: { | + | embarazada: false, |
| - | oftalmologia: | + | coberturas: { |
| - | dental: | + | oftalmologia: |
| - | fecundacionInVitro: | + | dental: false, |
| - | }, | + | fecundacionInVitro: |
| - | enfermedades: | + | }, |
| - | corazon: | + | enfermedades: |
| - | estomacal: | + | corazon: false, |
| - | rinyones: | + | estomacal: false, |
| - | alergia: | + | rinyones: false, |
| - | nombreAlergia:"" | + | alergia: false, |
| - | }, | + | nombreAlergia: |
| - | fechaCreacion: | + | }, |
| + | fechaCreacion: | ||
| + | } | ||
| + | |||
| + | remoteResource.get(function(seguro) { | ||
| + | $scope.seguro = seguro; | ||
| + | }, function(data, | ||
| + | alert(" | ||
| + | }); | ||
| } | } | ||
| - | + | ]); | |
| - | remoteReource.get(function(seguro) { | + | |
| - | $scope.seguro=seguro; | + | |
| - | }, | + | |
| - | alert(" | + | |
| - | }); | + | |
| - | + | ||
| - | }]); | + | |
| </ | </ | ||
| {{url> | {{url> | ||
| - | |||
| ===== Malas prácticas ===== | ===== Malas prácticas ===== | ||
| + | En muchos ejemplos que se ven de AngularJS se tiende a definir un provider en un único bloque en vez de definir diversas funciones separadas como hemos hecho aqui. | ||
| + | Podemos ver el siguiente trazo de código en el que se ha definido el provider usando varias funciones anónimas anidadas. | ||
| <sxh js> | <sxh js> | ||
| Línea 254: | Línea 260: | ||
| </ | </ | ||
| + | Este código - aunque funciona - no es recomendable por lo complejo que resulta de entender. | ||
| + | |||
| + | ===== Referencias ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
unidades/03_servicios/10_ejemploseguro.1406757509.txt.gz · Última modificación: por admin
