practica 1
previa
npm install jquery popper.js bootstrap
rutas
import { RouterModule, Routes } from '@angular/router'; import { HomeComponent } from './components/home/home.component'; import { AboutComponent } from './components/about/about.component'; import { PeliculasComponent } from './components/peliculas/peliculas.component'; const APP_ROUTES: Routes = [ { path: 'home', component: HomeComponent }, { path: 'about', component: AboutComponent }, { path: 'peliculas', component: PeliculasComponent }, { path: '**', pathMatch: 'full', redirectTo: 'home' } ]; export const APP_ROUTING = RouterModule.forRoot(APP_ROUTES);
- añadir a app.modules.ts
- en navbar.component.html:
<li class="nav-item" routerLinkActive="active"> <a class="nav-link" [routerLink]="['home']">Home</a> </li> <li class="nav-item" routerLinkActive="active"> <a class="nav-link" [routerLink]="['peliculas']">Películas</a> </li> <li class="nav-item" routerLinkActive="active"> <a class="nav-link" [routerLink]="['about']">About</a> </li>
- uso de routerLinkActive para indicar la opción activa
- uso de [routerLink] en lugar de href
servicios
- Ofrecer objeto Singleton y mediante Inyección de Dependencias.
- Brindar información a quien la necesite.
- Realizar peticiones CRUD (create, read, update, delete), normalmente a un backend que exponga un API Rest.
- Gestionar la persistencia de los datos.
- Servir como recurso reutilizable en la aplicación.
ng g[enerate] s[ervice] services/peliculas --skipTests
- genera el código correspondiente, con un decorador llamado @Injectable
- añadir en app.module.ts en la sección providers del decorador y hacer el import correspondiente
- a partir de Angular 7 no es necesario, la directiva ProvidedIn del servicio ya lo hace (no fisicamente)
modelos/interfaz
ng g[enerate] i[nterface] models/pelicula