import { FormsModule } from '@angular/forms';
imports: [
BrowserModule,
FormsModule
],
Incluir en el index.html los CDN de jquery y bootstrap
En app.component.css:
.lsg {
border-radius: 4px;
margin-top: 20px;
padding: 30px;
background: #fff;
}
En styles.css:
body {
background: #02AAB0; /* fallback for old browsers */
background: -webkit-linear-gradient(left, #00CDAC, #02AAB0);
background: -moz-linear-gradient(left, #00CDAC, #02AAB0);
background: -o-linear-gradient(left, #00CDAC, #02AAB0);
background: linear-gradient(to right, #00CDAC, #02AAB0);
}
En app.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
titulo = 'CRUD de Angular';
msg:string = '';
empleados = [
{
'nombre': 'Uno',
'cargo': 'Programador',
'email': 'uno@gmail.com'
},
{
'nombre': 'Dos',
'cargo': 'Maquetador',
'email': 'dos@gmail.com'
},
{
'nombre': 'Tres',
'cargo': 'Cuentas',
'email': 'tres@gmail.com'
},
{
'nombre': 'Cuatro',
'cargo': 'Programador',
'email': 'cuatro@gmail.com'
}
];
model:any = {};
model2:any = {};
hideUpdate:boolean = true;
addEmpleado():void {
this.empleados.push(this.model);
this.msg = 'campo agregado';
$("#nombre").val("");
$("#cargo").val("");
$("#email").val("");
}
deleteEmpleado(i):void {
var answer = confirm('Estas seguro querer eliminarlo?');
if(answer) {
this.empleados.splice(i, 1);
this.msg = 'campo eliminado';
}
}
myValue;
editEmpleado(i):void {
this.hideUpdate = false;
this.model2.nombre = this.empleados[i].nombre;
this.model2.cargo = this.empleados[i].cargo;
this.model2.email = this.empleados[i].email;
this.myValue = i;
}
updateEmpleado():void {
let i = this.myValue;
for(let j = 0; j < this.empleados.length; j++){
if(i == j) {
this.empleados[i] = this.model2;
this.msg = 'campo actualizado';
this.model2 = {};
}
}
}
}
En app.component.html:
<div class="container lsg">
<div class="row">
<div class="col-sm-8">
<h1 class="text-center">
{{titulo}}
</h1>
</div>
<div class="col-sm-4">
<div class="alert alert-success alert-dismissable" *ngIf="msg">
<a href="#" class="close" (click)="closeAlert()">
×
</a>
{{msg}}
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
<img width="300" src="images/logo.jpg" />
</div>
<div class="col-sm-8">
<h2>Crear:</h2>
<form class="form-horizontal">
<div class="form-group">
<label for="nombre" class="control-label col-sm-2">
Nombre
</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="nombre"
name="nombre" [(ngModel)]="model.nombre"
placeholder="Escribe el nombre"
>
</div>
</div>
<div class="form-group">
<label for="position" class="control-label col-sm-2">
Cargo
</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="cargo"
name="cargo" [(ngModel)]="model.cargo"
placeholder="Escribe el cargo"
>
</div>
</div>
<div class="form-group">
<label for="email" class="control-label col-sm-2">
Email
</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="email"
name="email" [(ngModel)]="model.email"
placeholder="Escribe el email"
>
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<button type="submit" class="btn btn-success" (click)="addEmpleado()">
Guardar
</button>
</div>
</div>
</form>
</div>
</div>
<div class="row">
<div class="col-sm-8">
<h2>Listado de empleados: </h2>
<table class="table table-bordered">
<thead>
<tr>
<th>Nombre</th>
<th>Cargo</th>
<th>Email</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of empleados; let i = index">
<td>{{item.nombre}}</td>
<td>{{item.cargo}}</td>
<td>{{item.email}}</td>
<td>
<a (click)="editEmpleado(i)" class="btn btn-success">
Modificar
</a>
<a (click)="deleteEmpleado(i)" class="btn btn-danger">
Borrar
</a>
</td>
</tr>
</tbody>
</table>
</div>
<div class="col-sm-4" [hidden]="hideUpdate">
<h2>Modificar:</h2>
<form class="form-horizontal">
<div class="form-group">
<label for="nombre" class="control-label col-sm-2">
Nombre
</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="nombre"
name="nombre" [(ngModel)]="model2.nombre"
placeholder="Escribe el nuevo nombre"
>
</div>
</div>
<div class="form-group">
<label for="cargo" class="control-label col-sm-2">
Cargo
</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="cargo"
name="cargo" [(ngModel)]="model2.cargo"
placeholder="Escribe el nuevo cargo"
>
</div>
</div>
<div class="form-group">
<label for="email" class="control-label col-sm-2">
Email
</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="email"
name="email" [(ngModel)]="model2.email"
placeholder="Escribe el nuevo email"
>
</div>
</div>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<button type="submit" class="btn btn-success" (click)="updateEmpleado()">
Guardar
</button>
</div>
</div>
</form>
</div>
</div>
</div>
No hay comentarios:
Publicar un comentario