Introducción a Angular y Fundamentos

1

Aprende Angular 17

2

Creando tu primer proyecto en Angular

3

Implementando estilos

4

Mostrando elementos

5

Property Binding en Angular

6

Event Binding: click y doble click

7

Event binding: keydown

8

Modelo de reactividad con Signals

9

Creando un Signal en Angular

Estructuras de control en Angular

10

Directivas de control

11

Uso de ngFor

12

ngFor para objetos

13

Update Tasks

14

Uso de ngIf

15

Uso de ngSwitch y ngSwitchDefault

16

Controlando un input

17

Manejo de formularios en Angular

Alistando tu aplicación para producción

18

Estilos al modo Angular

19

Clases en Angular

20

Editing mode

21

Estados compuestos con computed

22

Usando effect para localStorage

23

Uso de ngbuild

24

Despliegue con Firebase Hosting

25

Nueva sintaxis en Angular

26

Directivas @For, @switch

27

Migrando a la nueva sintaxis de Angular v17

Componentes Reutilizables y Comunicación

28

Construyendo un e-commerce en Angular

29

Componentes en Angular

30

Mostrando los componentes

31

Angular DevTools

32

Uso de Inputs en Angular

33

Uso de Outputs en Angular

34

Componentes para Producto

Ciclo de vida de los componentes

35

Ciclo de vida de componentes

36

Ciclo de vida de componentes: ngOnChanges

37

Ciclo de vida de componentes: ngOnInit

38

Detectando cambios en los inputs

39

Evitando memory leaks con ngDestroy

40

Audio player con ngAfterViewInit

41

Creando la página "about us" o "conócenos"

Mejorando la interfaz del producto

42

Creando componente de productos

43

Creando el Header

44

Creando el carrito de compras

45

Comunicación padre e hijo

46

Calculando el total con ngOnChanges

47

El problema del prop drilling

48

Reactividad con signals en servicios

49

Entendiendo la inyección de dependencias

Integración y Datos

50

Obteniendo datos una REST API

51

Importaciones cortas en Typescript

52

Pipes en Angular

53

Construyendo tu propio pipe

54

Utilizando librerías de JavaScript en Angular

55

Conociendo las directivas

56

Deployando un proyecto en Vercel

Enrutamiento y Navegación

57

Ruta 404

58

Uso del RouterLink

59

Vistas anidadas

60

Uso del RouterLinkActive

61

Detalle de cada producto

62

Obteniendo datos del producto

63

Galería de imagenes

64

Detalle de la galería

Perfeccionando tu e-commerce

65

Mostrando categorias desde la API

66

Url Params

67

LazyLoading y Code Splitting

68

Aplicando LazyLoading

69

Prefetching

70

Usando la nueva sintaxis de Angular 17

71

Lanzando tu aplicación a producción

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
10 Hrs
54 Min
28 Seg

Directivas de control

10/71
Resources

What are control structures?

Control structures are essential tools in programming that allow us to manage the execution flow of a program. In Angular, these structures are crucial for displaying elements dynamically, including, for example, rendering lists based on specific conditions. Using these structures allows our applications to better adapt and respond to the current state of the data.

How can we work with signals in Angular?

The concept of signals in Angular is fundamental when it comes to obtaining and handling dynamic values. A signal is a dynamic reference to a value that can be a string or another type of data such as an array. Using signals allows developers to subscribe to these values and get updates whenever the value changes. Thus, we can create more reactive and efficient applications.

// We convert an array of tasks into a signalconst tasks = signal(['Task 1', 'Task 2', 'Task 3']);

To work with the value of a signal, it is necessary to subscribe to it. This is done by executing the signal, which allows us to access the stored value.

How do we iterate over an array in Angular?

To iterate over an array in Angular, the ngFor directive is commonly used. This allows us to not only iterate through the elements of the array, but also to obtain additional information, such as the index of each element within the array.

<!-- Iterating an array using ngFor --><li*ngFor="let task of tasks(); index as i"> {{ i }}: {{ task }}</li>

Here we iterate over each element of the tasks signal, printing both its index and value. This is especially useful for rendering lists of dynamic elements.

How are task lists implemented in an application?

Task list applications typically display several tasks in different states. These states can be:

  1. Completed: the task has already been completed.
  2. Displayed: The task is only displayed, with no immediate editing possible.
  3. Edit: The task can be modified.

To handle these different presentations of a task, you could work with a part of the visual HTML and adjust the status of each task as needed.

<div*ngIf="task.state === 'visualization'"> <span>{{ task.label }}</span></div>.

Implementing using Angular and signals allows for a smooth and efficient user experience, as status updates are rendered in real time.

Why is it useful to comment out parts of the code during development?

Commenting out parts of the code is a common technique to prevent the execution of certain aspects of the code while working on others. This allows:

  • Keep the code clean: By temporarily hiding code that is not immediately needed.
  • Facilitate focus: By allowing the developer to concentrate on the relevant part of the code under development.
  • Quick reuse: By keeping code snippets ready to activate in future development sessions.
<!-- Section commenting in HTML --><!-- <div> This is temporarily commented out </div> -->

This technique helps the developer to more efficiently manage their project as it expands and becomes more complicated.

The points covered here represent only a fraction of what can be accomplished with Angular and its flow control and dynamic rendering capabilities. Continuing to explore and learn more about these technologies will allow you to build robust and highly interactive applications. Go ahead and continue your journey in web development with Angular!

Contributions 18

Questions 5

Sort by:

Want to see more contributions, questions and answers from the community?

**Solución al Error de Uso de** `*ngFor` **en Angular.** Quiero compartir con ustedes cómo resolví un error común al utilizar la directiva `*ngFor` en Angular, esperando que pueda ayudar a cualquiera que se encuentre con el mismo problema. Al intentar iterar sobre un arreglo en mi plantilla Angular utilizando `*ngFor`, me encontré con un error de compilación que indicaba que ni `NgFor` ni `CommonModule` habían sido importados correctamente, a pesar de que `CommonModule` estaba presente en mis importaciones. El código problemático era el siguiente: `
  • ` Después de revisar mi código y buscar en la documentación de Angular, me di cuenta de que el problema no estaba relacionado con la importación de módulos, sino con la sintaxis utilizada en la directiva `*ngFor`. Específicamente, estaba tratando de llamar a una función (`toDo()`) en lugar de referenciar una propiedad o variable del componente. Además, había utilizado incorrectamente el operador `as` en lugar de `of` para iterar sobre los elementos del arreglo. La solución fue simplemente corregir la sintaxis de la directiva `*ngFor` en mi plantilla, cambiando el operador `as` por `of` y asegurándome de referenciar una propiedad del componente en lugar de llamar a una función. Aquí está el código corregido: `
  • `
  • no me imprime la lista
    Utilizando la nueva sintaxis de Angular ```js
      @for(task of tasks(); track task){
    • {{$index + 1}} {{task}}
    • }
    ```\
        @for(task of tasks(); track task){    \
    • {{$index + 1}}  {{task}}\
    •   }\
    Buenas sumercé! Les traigo atajitos de VSCode que ojalá les guste: * Subraya y ctrl + K + C para comentar en cualquier lenguaje. * Subraya y ctrl + K + U para descomentar en cualquier lenguaje. * Subraya y shift + alt + Down para duplicar una línea de código justo abajo de la original (Re útil en HTML). * Ctrl + B para mostrar o ocultar el explorador de archivos de VSCode. Espero les guste parceritos, ya les traeré más cuando me encuentre más. Saludos!
    Compartan el html del home por favor
    Si son como yo que la lista no le imprima, deben de tener en cuenta lo siguiente: 1- las importaciones estes bien en este caso que commonModule este importado 2- si tienen todo como el profesor y no les aparece, lo que me funcionó fue escribir la linea del \*ngfor de forma manual Espero que sea de ayuda
    ```html <section class="todoapp"> <header class="header">

    My Day

    All my tasks in one place

    <input class="new-todo" placeholder="Type new todo" autofocus type="text" />
    </header>
    <section class="main">
    • <input class="toggle" type="checkbox" checked /> <label>Learn JavaScript</label> <button class="destroy"></button>
      <input class="edit" value="Learn JavaScript" />
    • <input class="toggle" type="checkbox" /> <label>Buy a unicorn</label> <button class="destroy"></button>
      <input class="edit" value="Buy a unicorn" />
    • <input class="toggle" type="checkbox" /> <label>Make dishes</label> <button class="destroy"></button>
      <input class="edit" value="Make dishes" />
    </section> <footer class="footer"> 0 item left <button class="clear-completed">Clear completed</button> </footer>
    </section> ```
    Despues de que hagan todo y quieran darle formato al codigo o el espacio correcto, pueden usar = shift + alt + f con eso les tabula de forma correcta todo el codigo, incluyendo espacios.
    También podemos utilizar los atajos Ctrl+k+c para las líneas o línea de código seleccionadas y Ctrl+k+u para descomentar, en vscode.
    Hola, como seria esto en angular 17:  @Input()  set tooltipPlacement(newValue: `${NgxFloatUiPlacements}`) {    this.placement = newValue as NgxFloatUiPlacements;  }
    porque teniendo el mismo codigo que el profesor y las importaciones ¿no me imprime el \*ngfor?
    Ami tampoco me imprime la lista, le agregué el CommonModule y nada. No sé que será.
    No me imprime la lista, he agregado lo que comento Brenda, importar el CommonModule, pero aun asi no se imprime. me da como error en la consola esto: "labs.component.html:5 NG0303: Can't bind to 'NgForOf' since it isn't a known property of 'li' (used in the '\_LabsComponent' component template). 1\. If 'li' is an Angular component and it has the 'NgForOf' input, then verify that it is included in the '@Component.imports' of this component. 2\. To allow any property add 'NO\_ERRORS\_SCHEMA' to the '@Component.schemas' of this component." He intentado en vez de usar \
      \
    • un \
      y nada, importe el NgModule y nada... he intentado par de cosas más y nada. No se que mas hacer. si alguien sabe algo y me puede ayudar, muchas gracias.
    Esta buenísimo Angular!!!
    Esto está muy cool !!!
    Yo anteriormente habia utilizado angular para algunos proyectos pero veia que angular al menos en la parte de la logica utilizaba mucho el tipado pero ya no veo que se haga dentro de este curso
    ![](https://static.platzi.com/media/user_upload/image-0159dff8-698b-4cc1-8151-4078aba36e61.jpg) ![](https://static.platzi.com/media/user_upload/image-267272fd-0bbc-4166-84e0-6797e39a8b9e.jpg) ![](https://static.platzi.com/media/user_upload/image-19a46d76-80ce-441e-9702-9160d86c984a.jpg)![](https://static.platzi.com/media/user_upload/image-671c8cc9-0596-424b-ac45-d90aaf3cabf0.jpg) Componente: ![](https://static.platzi.com/media/user_upload/image-a10b0d36-309b-4818-b43b-ced18a256757.jpg)![](https://static.platzi.com/media/user_upload/image-34a7be98-92fd-45ee-aed7-e46b29cbceb4.jpg) Creo que usando getter se ve más natural el código en el template