unidades:07_rutas:05_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:07_rutas:05_ejemploseguro [2014/08/27 10:25] – [Hacer que el método get del servicio remoteResource acepte como argumento el idSeguro] admin | unidades:07_rutas:05_ejemploseguro [2014/09/16 19:33] (actual) – admin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== Ejemplo de rutas ====== | + | ====== |
| En este tema retornamos el ejemplo del seguro médico para añadir el servicio de rutas y de paso hacer otros cambios que ya podemos hacer. | En este tema retornamos el ejemplo del seguro médico para añadir el servicio de rutas y de paso hacer otros cambios que ya podemos hacer. | ||
| La lista de modificaciones a realizar es la siguiente: | La lista de modificaciones a realizar es la siguiente: | ||
| - | * Añadir a los datos JSON otra propiedad llamada '' | + | * Añadir a los datos JSON otra propiedad llamada '' |
| * Hacer que el método '' | * Hacer que el método '' | ||
| - | * Navegar entre página | + | |
| - | * Quitar de las páginas la cabera | + | |
| + | * Quitar de las páginas la cabecera | ||
| * Permitir ir desde el lista de seguros al detalle de cada seguro. | * Permitir ir desde el lista de seguros al detalle de cada seguro. | ||
| - | * Cargar los datos del listado desde el '' | + | * Cargar los datos del listado desde el '' |
| - | * Cargar los datos del detalle desde el '' | + | * Cargar los datos del detalle desde el '' |
| Línea 43: | Línea 44: | ||
| ===== Hacer que el método get del servicio remoteResource acepte como argumento el idSeguro ===== | ===== Hacer que el método get del servicio remoteResource acepte como argumento el idSeguro ===== | ||
| - | Ahora en vez de tener un solo fichero llamado '' | + | Ahora, en vez de tener un solo fichero llamado '' |
| * '' | * '' | ||
| * '' | * '' | ||
| Línea 49: | Línea 50: | ||
| * Etc. | * Etc. | ||
| - | Eso nos permite que desde el método '' | + | Éso nos permite que desde el método '' |
| El método '' | El método '' | ||
| Línea 71: | Línea 72: | ||
| </ | </ | ||
| * Línea 1: Ahora aceptamos el parámetro '' | * Línea 1: Ahora aceptamos el parámetro '' | ||
| - | * Línea 7: Al obtener los datos , obtenemos del fichero que tiene solo los datos que queremos. | + | * Línea 7: Al obtener los datos , obtenemos del fichero que los tiene sólo los datos que queremos. |
| <note tip> | <note tip> | ||
| - | Recuerda que la forma de obtener los datos por ahora es temporal, ya veremos | + | Recuerda que la forma de obtener los datos por ahora es temporal. Ya veremos |
| </ | </ | ||
| + | |||
| + | ===== Nueva página main.html ===== | ||
| + | Al añadir la rutas, la página '' | ||
| + | |||
| + | El contenido de esta página es solamente el enlace para mostrar '' | ||
| + | |||
| + | <sxh html; | ||
| + | <a href="#/ | ||
| + | </ | ||
| + | |||
| + | A la página '' | ||
| + | |||
| ===== Navegar entre páginas usando las rutas ===== | ===== Navegar entre páginas usando las rutas ===== | ||
| Línea 83: | Línea 96: | ||
| * '' | * '' | ||
| - | La página | + | <sxh js> |
| + | app.config([' | ||
| + | |||
| + | $routeProvider.when('/', | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | |||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | |||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | }); | ||
| + | |||
| + | $routeProvider.otherwise({ | ||
| + | redirectTo: '/' | ||
| + | }); | ||
| + | |||
| + | }]); | ||
| + | </ | ||
| + | |||
| + | Hemos creado las 3 rutas para las 3 páginas. | ||
| + | |||
| + | El path de la ruta de '' | ||
| + | |||
| + | También en el path de la ruta de '' | ||
| + | |||
| + | Al añadir las rutas hemos tenido que hacer otros 2 cambios: | ||
| + | * Incluir el fichero JavaScript '' | ||
| + | |||
| + | <sxh html> | ||
| + | <script src='// | ||
| + | </ | ||
| + | |||
| + | * Hacer que el módulo de la aplicación dependa del módulo '' | ||
| + | |||
| + | <sxh js> | ||
| + | var app = angular.module(" | ||
| + | </ | ||
| + | ===== Quitar de las páginas la cabera y el pie ya que ahora sólo están en la página index.html. ===== | ||
| + | Ahora ya no es necesario incluir la cabecera ni el pie en '' | ||
| + | |||
| + | En '' | ||
| + | |||
| + | <sxh html; | ||
| + | < | ||
| + | <html ng-app=" | ||
| + | |||
| + | < | ||
| + | <script src="// | ||
| + | <script src='// | ||
| + | <script src="// | ||
| + | <script src=" | ||
| + | </ | ||
| + | |||
| + | <body ng-controller=" | ||
| + | |||
| + | < | ||
| + | |||
| + | <div ng-view></ | ||
| + | |||
| + | < | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | * Línea 15: Hemos añadido la directiva '' | ||
| + | |||
| + | ===== Permitir ir desde el lista de seguros al detalle de cada seguro ===== | ||
| + | Como ya tenemos rutas y parámetros, | ||
| + | |||
| + | Para ello sólo hemos añadido un link con la ruta correspondiente a '' | ||
| + | |||
| + | <sxh html; | ||
| + | |||
| + | Filtrar por apellido:< | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | <td colspan=" | ||
| + | <td ng-bind=" | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | <tr ng-repeat=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <td ng-switch on=" | ||
| + | <span ng-switch-when=" | ||
| + | <span ng-switch-when=" | ||
| + | <span ng-switch-when=""></ | ||
| + | <span ng-switch-default> | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | * Línea 20: El link ahora apunta a la ruta ''/ | ||
| + | |||
| + | ===== Cargar los datos del listado desde el '' | ||
| + | Para evitar que al aparecer la página de listado un instante después aparezca la tabla con los datos, vamos a obtener los datos en el '' | ||
| + | |||
| + | Para ello hemos modificado la definición de la ruta de la siguiente forma: | ||
| + | <sxh js; | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | resolve: { | ||
| + | seguros: | ||
| + | return remoteResource.list(); | ||
| + | }] | ||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | * Línea 4: Se añade la propiedad '' | ||
| + | * Línea 5: Se inyecta el servicio '' | ||
| + | * Línea 6: Aquí es donde se llama para obtener los datos y se retorna la promesa. | ||
| + | |||
| + | |||
| + | Ahora en el controlador ya no es necesario que llamemos a '' | ||
| + | |||
| + | <sxh js; | ||
| + | app.controller(" | ||
| + | $scope.seguros = seguros; | ||
| + | }]); | ||
| + | </ | ||
| + | * Línea 1: Inyectamos el // | ||
| + | * Línea 2: Ahora simplemente los guardamos en el '' | ||
| + | |||
| + | Como ya tenemos el array con todos los datos, en cuanto se muestre la página ya se verá la tabla con toda la información. | ||
| + | |||
| + | <note tip> | ||
| + | Compara ahora este ejemplo del seguro con el de la unidad anterior y verás la diferencia. | ||
| + | </ | ||
| + | |||
| + | ===== Cargar los datos del detalle desde el '' | ||
| + | Para evitar que al aparecer la página de detalle , aparezcan los datos en los campos un instante después, vamos a obtener los datos en el resolve de la ruta. | ||
| + | |||
| + | Para ello hemos modificado la definición de la ruta de la siguiente forma: | ||
| + | <sxh js> | ||
| + | $routeProvider.when('/ | ||
| + | templateUrl: | ||
| + | controller: " | ||
| + | resolve: { | ||
| + | seguro: | ||
| + | return remoteResource.get($route.current.params.idSeguro); | ||
| + | }] | ||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | Línea 4: Se añade la propiedad '' | ||
| + | Línea 5: Se inyecta el servicio '' | ||
| + | Línea 6: Aquí es donde se llama para obtener los datos y se retorna la promesa.Vemos que al método '' | ||
| + | |||
| + | |||
| + | Ahora en el controlador ya no es necesario que llamemos a remoteResource.get() sino que sólo hay que inyectar '' | ||
| + | |||
| + | |||
| + | <sxh js; | ||
| + | app.controller(" | ||
| + | |||
| + | $scope.filtro = { | ||
| + | ape1: "" | ||
| + | } | ||
| + | |||
| + | $scope.sexos = [{ | ||
| + | codSexo: " | ||
| + | descripcion: | ||
| + | }, { | ||
| + | codSexo: " | ||
| + | descripcion: | ||
| + | }]; | ||
| + | |||
| + | |||
| + | $scope.seguro = { | ||
| + | nif: "", | ||
| + | nombre: "", | ||
| + | ape1: "", | ||
| + | edad: undefined, | ||
| + | sexo: "", | ||
| + | casado: false, | ||
| + | numHijos: undefined, | ||
| + | embarazada: false, | ||
| + | coberturas: { | ||
| + | oftalmologia: | ||
| + | dental: false, | ||
| + | fecundacionInVitro: | ||
| + | }, | ||
| + | enfermedades: | ||
| + | corazon: false, | ||
| + | estomacal: false, | ||
| + | rinyones: false, | ||
| + | alergia: false, | ||
| + | nombreAlergia: | ||
| + | }, | ||
| + | fechaCreacion: | ||
| + | } | ||
| + | |||
| + | $scope.seguro = seguro; | ||
| + | |||
| + | |||
| + | }]); | ||
| + | </ | ||
| + | Línea 1: Inyectamos el // | ||
| + | Línea 40: Ahora simplemente los guardamos en el $scope y se mostrarán en el formulario HTML. | ||
| + | |||
| + | Como ya tenemos el objeto con todos los datos, en cuanto se muestre la página ya se verá toda la información en el formulario . | ||
| + | |||
| + | <note important> | ||
| + | |||
| ===== Ejemplo ===== | ===== Ejemplo ===== | ||
| - | <note important> | + | <note important> |
| {{url> | {{url> | ||
unidades/07_rutas/05_ejemploseguro.1409127905.txt.gz · Última modificación: por admin
