Utiliza el proyecto que desarrollaste con los tutoriales de Angular - Local y Angular - Boostrap.
Los componentes son las unidades básicas de una interfaz de usuario en una aplicación Angular. Estos componentes están asociados con una plantilla y un subconjunto de directivas.
Desde la línea de comandos, en la ruta raíz del proyecto de Angular, cree el componente contacto: ng g c shared/contacto
De app.component.html
, extraiga las siguientes etiquetas HTML:
...
<h4>Contact</h4>
<ul class="list-unstyled">
<li><a href="#" class="text-white">Follow on Twitter</a></li>
<li><a href="#" class="text-white">Like on Facebook</a></li>
<li><a href="#" class="text-white">Email me</a></li>
</ul>
...
Reemplace el contenido de contacto.component.html
por las etiquetas HTML copiadas previamente.
Renderice el componente contacto dentro del componente app:
...
import { ContactoComponent } from './shared/contacto/contacto.component';
@Component({
selector: 'app-root',
standalone: true,
imports: [CommonModule, RouterOutlet, ContactoComponent],
templateUrl: './app.component.html',
styleUrl: './app.component.css'
})
export class AppComponent {
...
<app-contacto>
: <div class="col-sm-4 offset-md-1 py-4">
<app-contacto></app-contacto>
</div>
Hay más de un mecanismo de comunicación entre la vista (el .html) y el controlador (.ts): string interpolation, property binding, event binding y two way databinding.
La interpolación se refiere a incrustar expresiones en texto marcado. De forma predeterminada, la interpolación utiliza llaves dobles como delimitadores.
En el .ts (el controlador) del componente contacto
...
export class ContactoComponent {
titulo:string = "Contáctame"
}
...
En el html (la vista) del componente contacto
<h4 class="text-white">Contact</h4>
por
<h4 class="text-white"> {{titulo}} </h4>
Notará que al abrir la barra superior aparece la vista modificada.
Una de las ventajas de usar un framework como Angular es que ofrece soluciones integradas para problemas comunes que encuentran los desarrolladores. Algunos ejemplos de esto incluyen: mostrar contenido en función de una determinada condición, renderizar una lista de elementos en función de los datos de la aplicación, etc.
Para resolver este problema, Angular utiliza bloques de flujo de control integrados, que le indican al framework cuándo y cómo se deben renderizar las plantillas.
Con el bloque de control de control de flujo @for podemos repetir n veces un bloque de etiquetas.
En el .ts (el controlador) del componente contacto
...
export class ContactoComponent {
...
medios:any[] = [
{ "texto":"En Twitter"},
{"texto":"En Facebook"},
{"texto":"Por correo electrónico"}
]
...
En el html (la vista) del componente contacto
<ul class="list-unstyled">
@for (medio of medios; track medio.texto) {
<li>
<a href="#" class="text-white">
{{medio.texto}}
</a>
</li>
} @empty {
Empty list of media
}
</ul>
Notará que al abrir la barra superior aparece la vista modificada.