Documente Academic
Documente Profesional
Documente Cultură
ng new miproyecto
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'miproyecto';
}
Además de que vamos a usar un selector que va a mostrar lo que se encuentra en ese
componente, el cual vamos a usar de etiqueta, en este caso <app-root> el cual se va a mostrar
en el index.html
<body>
<app-root></app-root>
</body>
ng generate component
Cuando generamos un componente Angular crea una carpeta dentro de app con el nombre del
componente y sus archivos.
Cuando querramos usar rutas en angular con routerlink, tenemos que declarar las rutas, de
que componente las sacamos en el archivo app-routing.module.ts (para navegar entre
componentes)
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Debajo del constructor crearemos una variable ruta que va a ser un arreglo de strings.
Y como este componente de angular implementa OnInit, que es una función que dice que;
haga algo ni bien se cree el componente… debajo de OnInit le asignamos el los valores al
arreglo de rutas (también podemos hacerlo cuando declaramos la variable)
@Component({
selector: 'app-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.css']
})
export class NavbarComponent implements OnInit {
constructor() { }
ruta:string[];
ngOnInit() {
this.ruta = ["inicio" , "proyectos"]
</div>
</div>
</nav>
En el html podemos utilizar la directiva *ngFor para recorrer un arreglo y poder mostrar el
código diciéndole …
Donde ítem es la variable que se va a usar en la iteración, de ruta (instancia que se encuentra
en componente)
También podemos usar las rutas de la forma routerLink=’ruta’, pero de la forma que se
muestra el código podemos tomar una ruta del arreglo ruta
>inicio</a>
<a class="nav-link" [routerLinkActive]="['active']"
routerLink='proyectos'
>proyectos</a>
<router-outlet></router-outlet>
<header>
<div class="container">
<app-navbar></app-navbar>
</div>
</header>
<router-outlet></router-outlet>
Previo a esto y a no olvidarse … en el modulo de app tenemos que importar los componentes
App.module.ts
@NgModule({
declarations: [
AppComponent,
NavbarComponent, //componente navbar
InicioComponent, //componente inicio
ProyectosComponent//componente proyectos
],
imports: [
BrowserModule,
AppRoutingModule //modulo de rutas
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Bien ya tenemos el navbar y nos quedo re lindo, ahora vamos a hacer nuestra pagina de inicio.
Que es la que vamos a presentar primero.
Creamos una variable frase de tipo any y le asignamos mensaje y autor como strings.
Básicamente para usar la directiva *ngIf en html.
@Component({
selector: 'app-inicio',
templateUrl: './inicio.component.html',
styleUrls: ['./inicio.component.css']
})
export class InicioComponent implements OnInit {
mostrar = true;
frase: any = {
mensaje: 'Bienvenido al inicio del curso de Angular',
autor: 'Claudio'
}
constructor() { }
ngOnInit() {
}
Inicio.component.html
Un ejemplo:
Y ponemos un botón que cambie el valor de mostrar, cuando le demos click cambia el valor de
mostrar de true a false y de false a true.
Esta directiva va a mostrar lo que hay dentro de la etiqueta div si se cumple la condición del if
(básicamente lo que hace un if)
El componente proyecto.
De esta forma generamos la clase dentro del directorio proyecto para que quede mas
ordenado (puede estar en cualquier lado de la aplicación)
constructor (nombre:string,url?:string){
if (url) {
this.urlImagen = url;
this.name = nombre;
}
else {
this.urlImagen = "";
this.name = nombre;
}
}
}
Creamos la clase con su constructor que puede recibir una el parámetro url opcional.
Y cuando llamamos a ese constructor le ponemos asignamos los valores recibidos a la instancia
Vamos a el componente proyectos proyectos.component.ts
En este caso hacemos un arreglo de tipo proyecto (misProyectos) … para tener varios
proyectos
@Component({
selector: 'app-proyectos',
templateUrl: './proyectos.component.html',
styleUrls: ['./proyectos.component.css']
})
export class ProyectosComponent implements OnInit {
misProyectos:Proyecto[] = [{name:"Portfolio",
urlImagen:"https://image.freepik.com/vector-gratis/diseno-fondo-
portfolio_1300-242.jpg"}, {name:"Software",
urlImagen:"https://chiefexecutive.net/wp-
content/uploads/2018/11/AdobeStock_92323963-compressor-1024x662.jpeg"}]
constructor() { }
ngOnInit() {
let proyecto:Proyecto = new Proyecto("Maiame",
"https://image.freepik.com/vector-gratis/diseno-fondo-portfolio_1300-
242.jpg")
this.misProyectos.push(proyecto)
agregarProyecto(nombre:string,url:string){
let proyecto:Proyecto = new Proyecto(nombre, url)
this.misProyectos.push(proyecto)
}
Podemos hacer una función para asignarle los valores, podemos asignarle los valores de forma
Dentro del OnInit podemos crear una variable de tipo proyecto y usar el método push para
agregarlo al arreglo.
O si queremos podemos hacer una función que le pasamos los valores a asignar y se los
asignamos.
Tenemos que tener en cuenta que esa función la tenemos poner en el OnInit si queremos que
esto suceda.
Estas son unas de las formas de solucionarlo.
Modificamos proyectos.component.html.
<h1>{{proyecto.name}}</h1>
<img src={{proyecto.urlImagen}} class="img-fluid" alt="Responsive
image">
</div>
</main>
<div>
Mostramos el nombre en un h1
Y dentro de index.html que esta fuera de la carpeta app le tenemos que decir que vamos a
usar bootstrap y que vamos a usar la app.
Utilizando la etiqueta de <app-root></app-root>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Miproyecto</title>
<base href="/">
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.mi
n.css" integrity="sha384-
ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
crossorigin="anonymous">
<body>
<app-root></app-root>
</body>
</html>