Introducci贸n a Angular y Fundamentos

1

Creando tu primer proyecto en Angular

2

Implementando estilos

3

Mostrando elementos

4

Property Binding en Angular

5

Event Binding: click y doble click

6

Event binding: keydown

7

Modelo de reactividad con Signals

8

Creando un Signal en Angular

Estructuras de control en Angular

9

Directivas de control

10

Uso de ngFor

11

ngFor para objetos

12

Update Tasks

13

Uso de ngIf

14

Uso de ngSwitch y ngSwitchDefault

15

Controlando un input

16

Manejo de formularios en Angular

Alistando tu aplicaci贸n para producci贸n

17

Estilos al modo Angular

18

Clases en Angular

19

Editing mode

20

Estados compuestos con computed

21

Usando effect para localStorage

22

Uso de ngbuild

23

Despliegue con Firebase Hosting

24

Nueva sintaxis en Angular

25

Directivas @For, @switch

26

Migrando a la nueva sintaxis de Angular v17

Componentes Reutilizables y Comunicaci贸n

27

Construyendo un e-commerce en Angular

28

Componentes en Angular

29

Mostrando los componentes

30

Angular DevTools

31

Uso de Inputs en Angular

32

Uso de Outputs en Angular

33

Componentes para Producto

Ciclo de vida de los componentes

34

Ciclo de vida de componentes

35

Ciclo de vida de componentes: ngOnChanges

36

Ciclo de vida de componentes: ngOnInit

37

Detectando cambios en los inputs

38

Evitando memory leaks con ngDestroy

39

Audio player con ngAfterViewInit

40

Creando la p谩gina "about us" o "con贸cenos"

Mejorando la interfaz del producto

41

Creando componente de productos

42

Creando el Header

43

Creando el carrito de compras

44

Comunicaci贸n padre e hijo

45

Calculando el total con ngOnChanges

46

El problema del prop drilling

47

Reactividad con signals en servicios

48

Entendiendo la inyecci贸n de dependencias

Integraci贸n y Datos

49

Obteniendo datos una REST API

50

Importaciones cortas en Typescript

51

Pipes en Angular

52

Construyendo tu propio pipe

53

Utilizando librer铆as de JavaScript en Angular

54

Conociendo las directivas

55

Deployando un proyecto en Vercel

Enrutamiento y Navegaci贸n

56

Ruta 404

57

Uso del RouterLink

58

Vistas anidadas

59

Uso del RouterLinkActive

60

Detalle de cada producto

61

Obteniendo datos del producto

62

Galer铆a de imagenes

63

Detalle de la galer铆a

Perfeccionando tu e-commerce

64

Mostrando categorias desde la API

65

Url Params

66

LazyLoading y Code Splitting

67

Aplicando LazyLoading

68

Prefetching

69

Usando la nueva sintaxis de Angular 17

70

Lanzando tu aplicaci贸n a producci贸n

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende Ingl茅s, Programaci贸n, AI, Ciberseguridad y mucho m谩s.

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

4 D铆as
6 Hrs
9 Min
17 Seg

Comunicaci贸n padre e hijo

44/70
Recursos

Aportes 13

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Aqu铆 dejo mi soluci贸n, tom茅 de flowbite un estilo de card para hacer el carrito y cree un m茅todo en el componente para calcular el total: Ts: ```js getTotalPrice() { return this.cart.reduce((total, product) => total + product.price, 0); } ``` HTML: ```html ```
Aqui les dejo como va quedando el maquetado de mi shopping cart :) ![](https://static.platzi.com/media/user_upload/evidencia_curso_angular_17-aef89125-9cef-4896-80d5-8a4397d5483f.jpg) El codigo que utilice para sumar el total de precios es el siguiente : `return this.cart.reduce((total, product) => total + product.price, 0);` Excelente curso, saludos
yo lo hice de esta manera : ```js
Product Image

{{ product.title }}

{{ product.price }}

Total: {{totalPrice}}

```\
聽 聽 聽 \
聽 聽 聽 聽 \Product Image聽 聽 聽 聽 \
聽 聽 聽 聽 聽 \

{{ product.title }}\

聽 聽 聽 聽 \
聽 聽 聽 聽 \
聽 聽 聽 聽 聽 \

{{ product.price }}\

聽 聽 聽 聽 \
聽 聽 聽 \
聽 聽 聽 \
聽 聽 聽 聽 \

Total: {{totalPrice}}\

聽 聽 聽 \
![](https://static.platzi.com/media/user_upload/image-a6fa27de-807d-47ab-acf8-ca6f46c820d6.jpg) asi quedo mi carrito :D
```js
    @for(product of cart; track product;){
  • Neil image

    {{product.title}}

    ${{product.price}}
  • }
```Esta es mi propuesta para mostrar los productos en el carrito de compras
![](https://static.platzi.com/media/user_upload/image-951eb616-a3a0-4890-b072-f81fda6f05aa.jpg) Al momento se ve asi! :XD
Yo hice un getter para obtener el valor de los productos. ```js get total(): number { return this.cartProdcuts.reduce((accumulator, product) => { return accumulator + product.price; }, 0) } ```
yo hice un getter para obtener el valor total de los productos `get total(): number { ` `return this.cartProdcuts.reduce((accumulator, product) => { ` `return accumulator + product.price; ` `}, 0) ` `}`
Cual seria la solucion para agregar el header desde app-component, pero que reciba desde la lista de productos, un producto y agregarlo al carrito de compras? Si agrego el header en el componente de listado no hay problemas para enviar al input del header, siendo este hijo del componente list.component.
todos unos masters y yo aun no puedo hacer que el aumente el carrito.
![](https://static.platzi.com/media/user_upload/image-b421400e-2c4b-481f-9135-679a24d2be63.jpg) ![]() ```tx getTotalPrice() { return this.productsInCart.reduce((total, product) => total + product.price, 0); } clearCart() { this.productsInCart = \[]; } deleteItem(product: Product) { this.productsInCart = this.productsInCart.filter(item => item.id !== product.id); } ``` ```html \
@for (product of productsInCart; track $index) { \ } @if (productsInCart.length > 0) { \
\

Total\

\

{{ getTotalPrice() }}\

\
\<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"> Checkout \</button> \\ \<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded" (click)="clearCart()"> Clear \</button> } \
```

Dejo mi solucion .ts ```js getTotalPrice() { return this.cart.reduce((total, product) => total + product.price, 0); } ```getTotalPrice() {聽 聽 return this.cart.reduce((total, product) => total + product.price, 0);聽 } View ```js ```\