Saltar a contenido

Proint

1 Creando Proyecto

ng new FRONT-Angular-api

Nos preguntará agregar routing y le damos a que si

Would you like to add Angular routing? (y/N) yes

Luego nos pregunta sobre si usar CSS solo u otros frameworks, escojeremos css y al dar ENTER empezará a crear neustro nuevo proyecto.

| Ingresamos al proyecto para probar el servidor:

ng serve 

1.2 Run Server

ng serve --host=0.0.0.0 --disable-host-check 
ng serve --sourceMap=false --host=0.0.0.0 --disable-host-check 

2 Creando Componentes

ng g component component/navbar
ng g component component/user-add
ng g component component/user-list

Y dentro de nuestro src/app/component tendremos creado nuestros nuevos componentes:

Ahora crearemos servicios y modelos:

3 Creando MODELOS y SERVICIOS

3.1 Modelos

Los modelos nos serviran para tener la estructura de nuestro modelo:

ng g class model/user

3.2 Servicios

Esta contine los metodos para hacer /GET /POST /PUT /DELETE

ng g service service/user

4 REGISTRAMOS LIBRERIAS

Vamos a registrar las librerias que usaremos en app.module.ts

HttpClientModule,
FormsModule

Debe quedar asi: Ahora importamos para borrar esos errores, importaremos lo que falta:

import { FormsModule } from '@angular/forms';
import { HttpClientModule } from '@angular/common/http'
| DEF: FormsModule: Sirve para recoger los datos de los formularios. HttpClientModule: Este nos sirve para hacer losservicios /GET /POST /PUT /DELETE


5 Configurando el MODELO

Nos vamos a src/app/model/user.ts y agregamos esto:

export class User {
    id?:number | null;
    nombres?:string;
    apellidos?:string;
    razonsocial?:string;
    direccion?:string;
    ruc?:string;
    celular?:string;
}
Deberia quedar asi igual al modelo de nuestro backend:

6 COMPONENTE NAV HTML

Agregando este codigo a src/app/components/navbar/navbar.component.html

<nav class="navbar navbar-expand-lg fixed-top navbar-dark bg-dark" aria-label="Main navigation">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Offcanvas navbar</a>
    <button class="navbar-toggler p-0 border-0" type="button" id="navbarSideCollapse" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>

    <div class="navbar-collapse offcanvas-collapse" id="navbarsExampleDefault">
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Dashboard</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Notifications</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Profile</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Switch account</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-bs-toggle="dropdown" aria-expanded="false">Settings</a>
          <ul class="dropdown-menu" aria-labelledby="dropdown01">
            <li><a class="dropdown-item" href="#">Action</a></li>
            <li><a class="dropdown-item" href="#">Another action</a></li>
            <li><a class="dropdown-item" href="#">Something else here</a></li>
          </ul>
        </li>
      </ul>
      <form class="d-flex">
        <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
        <button class="btn btn-outline-success" type="submit">Search</button>
      </form>
    </div>
  </div>
</nav>

7 Agregando BOOTSTRAP - CSS FrameWorks

Nos dirigimos a src/index.html y agregamos esto arriba de <head>:

<!-- Font Awesome -->
<link
  href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css"
  rel="stylesheet"
/>
<!-- Google Fonts -->
<link
  href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap"
  rel="stylesheet"
/>
<!-- MDB -->
<link
  href="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.10.0/mdb.min.css"
  rel="stylesheet"
/>

Y el JS al finalizar el body osea encima de </body>:

<!-- MDB -->
<script
  type="text/javascript"
  src="https://cdnjs.cloudflare.com/ajax/libs/mdb-ui-kit/3.10.0/mdb.min.js"
></script>

INFO <app-root>

| <app-root></app-root> esta hubicado en ** src/app/ y sus archivos son app.component.html y app.component.html como lo indica su codigo, entonces ese es el html que se esta mostrando en nuestro home**:

8 Insert component in HOME

Nos vamos a src/app/app.component.html y eliminamos todo el codigo excepto

<router-outlet></router-outlet>

y solo deberiamos tener eso y agregamos nuestro nav-bar:

<app-navbar></app-navbar>

<router-outlet></router-outlet>

Colocaremos nuestro nav-bar component en la home:

<app-navbar></app-navbar>
<div class="container">
  <router-outlet></router-outlet>
</div>

RUN SERVE

ng serve --host=0.0.0.0 --disable-host-check 
ng serve --sourceMap=false --host=0.0.0.0 --disable-host-check 

9 ROUTING Enrutamiento

Nos dirigimos a src/app/app-routing.module.ts y dentro de const routes jalamos las rutas de LISTAR y AGREGAR.

{path:"usuarios",component:UserListComponent}

y para poder acceder a esta ruta usaremos este codigo en html:

 <li class="nav-item">
 <a class="nav-link active" href="#" routerLink="usuarios">Usuarios</a>
 </li>

routerLink="usuarios" nos ayuda a acceder rapidamente sin cargar la pagina frente a href .

10 Creando TABLA para Listar USUARIOS

En el componente src\app\component\user-list\user-list.component.html

<table class="table">
    <thead class="table-dark">
      <tr>
        <th scope="col">#</th>
        <th scope="col">Nombres</th>
        <th scope="col">Apellidos</th>
        <th scope="col">Razon Social</th>
        <th scope="col">Dirección</th>
        <th scope="col">Ruc</th>
        <th scope="col">Celular</th>
        <th scope="col">Opciones</th>
      </tr>
    </thead>
    <tbody>
      <tr *ngFor="let item of listaUsuarios">
        <th scope="row">{{ item.id }}</th>
        <td>{{ item.nombres }}</td>
        <td>{{ item.apellidos }}</td>
        <td>{{ item.razonsocial }}</td>
        <td>{{ item.direccion }}</td>
        <td>{{ item.ruc }}</td>
        <td>{{ item.celular }}</td>
        <td>
            <a href="#" >Editar</a> | <a href="#" >Eliminar</a> 
        </td>
      </tr>
    </tbody>
  </table>
En src\app\component\user-list\user-list.component.ts Deberia quedarnos asi:

import { Component, OnInit } from '@angular/core';
import { UserService } from 'src/app/service/user.service';

@Component({
  selector: 'app-user-list',
  templateUrl: './user-list.component.html',
  styleUrls: ['./user-list.component.css']
})
export class UserListComponent implements OnInit {

  listaUsuarios:any;
  constructor(private userService:UserService) { }

  ngOnInit(): void {
    this.userService.getUsers().subscribe((usuarios:any) => {
      this.listaUsuarios=usuarios;
    })

  }

}

11 Formulario Para Añadir USUARIOS


Creando Nuevo Componente y Enrutarlo

Hubicamos nuestro component.ts de nuestro componente y copiamos este identificador:

Luego nos vamos a src\app\app-routing.module.ts y agregamos dos nuevas lienas una para importar nuestro componente y el otro para darle una ruta.

Al darle una ruta en este ejemplo de la imagen es 'datos' esta misma la usaremos en nuestro codigo html para invocarla ejemplo.

```html

```

## ADD MDB