Crear rutas y relacionarlas con componentes en Angular es una tarea trivial. Anímate a construir tu primera aplicación con rutas, crea una página de inicio y otra página para listar productos o hablar de ti.
Cómo optimizar rutas en Angular
Veamos algunos consejos para optimizar tus rutas.
Ocurrirá en tu aplicación que el usuario no ingrese ninguna ruta. Siempre es buena práctica tener otra por defecto y puedes realizarlo de la siguiente manera:
Observa la primera regla que tiene el path vacío y un redirectTo para redireccionar al componente "home" cuando no se ingresa ninguna ruta. Utiliza también la opción pathMatch para asegurar que la ruta sea exacta.
Esta es mi solución al reto, en el componente products.component.ts he agregado una variable que me va a servir como Output con una función que será el que va a emitir el evento
Para finalizar en el servicio de products, no se hace una correcta asignación de los params, entonces si quieren que les funcione correctamente solo deben de cambiar en la función getAll lo siguiente:
hi, hice el siguiente cambio al getAll del servicio de products, porqué no estaba identificando que los valores limit y offset
getAll(limit?: number, offset?: number){let params =newHttpParams();//Inicio de los cambiosconst temp_limit = limit as number;const temp_offset = offset as number;if(temp_limit?.toString().length>0&& temp_offset?.toString().length>0){ params = params.set('limit', temp_limit); params = params.set('offset', temp_offset);}//Fin de los cambiosreturnthis.http.get<Product[]>(this.apiUrl,{ params,context:checkTime()}).pipe(retry(3),map(products=> products.map(item=>{return{...item,taxes:.19* item.price}})));}
creo que lo que estaba sucediendo en la implementación anterior, es que al ser los valore "opcionales" el if lo toma siempre como undefined así los enviemos y nunca se hará el set de los params 😁
de hecho si ves en el video se muestra un array de 50 productos (en el dev tools de angular)
¿Que pasa si un usuario digita un path que no existe?
podríamos hace lo siguiente, esto redirige al home cualquier path que no exista en nuestra lista de rutas
{path:'**',redirectTo:'/home',pathMatch:'full',}
Detalle que parece importante resaltar en esta clase.
PathMatch se utiliza para especificar cómo se debe hacer la coincidencia de la ruta. Hay dos opciones:
full: la ruta se considera coincidente si el resto de la URL coincide con la ruta especificada.
prefix: la ruta se considera coincidente si la URL comienza con la ruta especificada.
Justo eso me preguntaba, que significaba y cuantas opciones había, muchas gracias RikyCG
Está super interesante el curso, sin embargo, la API con la que se está trabajando esta o rota siendo bloqueada por CORS, luego de clonar el repo y pasar por conflictos de compatibilidad, me encuentro con este problema que al configurar proxy como lo hicimos en el curso anterior no da resultado alguno o no tengo conocimiento de como solucionar... Tienen alguna idea o solución, te agradecería:
Access to XMLHttpRequest at 'LA API' from origin LOCALHOST' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Hola, sentimos los problemas causados y la demora en responder, ya la API está en funcionamiento y no deberias tener problemas de CORS, tambien puedes intentar usar
Hola tengo este problema, ya verifique el selector y es el correcto.
Ayuda por favor
src/app/pages/home/home.component.html:2:1- error NG8001:'app-products' is not a known element:1.If'app-products' is an Angular component, then verify that it is part ofthis module.2.If'app-products' is a WebComponent then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas'ofthis component to suppress this message.2<app-products></app-products>~~~~~~~~~~~~~~ src/app/pages/home/home.component.ts:5:165templateUrl:'./home.component.html',~~~~~~~~~~~~~~~~~~~~~~~Error occurs in the template of component HomeComponent.
No entiendo el objetivo de buscar el renderizado de parte del componente app-products ... en otras palabras ¿qué se gana de forma ingenieril con esta acción?? es por buena práctica?
El objetivo de buscar el renderizado de parte del componente app-products es optimizar el rendimiento de la aplicación. Al cargar solo la parte necesaria del componente, se reduce el tiempo de carga y se mejora la experiencia del usuario. Esto es una buena práctica en ingeniería de software.
Saludos, pregunta por que cuando ingreso a la API de consumos, https://fakeapi.platzi.com/ no me deja renderizar las imágenes tiene algún problema la plataforma o estoy haciendo mal ?
Hola,
la API funciona, da respuesta, pero las direcciones de las imágenes que manda la API para cada producto, no funcionan. Parece que el portal https://placeimg.com/ ha dejado de funcionar.
Saludos.