Logré que la búsqueda funcione (que antes no lo hacía). Cuando busco "Lourdes del Mar", tal cual está escrito ahí, lo encuentra, me dice '1 Búsqueda encontrada'. Lo que yo necesito es que sea indiferente si se escribe en mayúscula o minúscula, y además que no solo busque por nombre, sino también por DNI, fecha de nacimiento, etc.
Aquí mi código:
busqueda.component.html
<div class="container">
<h1 class="titulo text-center">Buscar un acta</h1>
<div class="busqueda">
<div class="form-group">
<input (keyup)="onSubmit($event)" [(ngModel)]="searchValue" type="text" id="searchKey" class="form-control" placeholder="Buscar..." />
<i class="fas fa-search"></i>
</div>
<p class="txt text-center">La búsqueda se puede realizar por nombre, apellido, DNI, fecha de nacimiento o lugar de nacimiento.</p>
<div *ngIf="condition; then block1; else block2"></div>
<ng-template #block1>
<i class="fa fa-spinner fa-spin" aria-hidden="true"></i> Buscando resultados para
<strong>{{prevText}}</strong>
</ng-template>
<ng-template #block2>
<h6>{{res_cnt}} Búsqueda encontrada</h6>
<table class="table table-hover">
<thead>
<tr class="tabla">
<th>Apellido y Nombre</th>
<th>DNI</th>
<th>Fecha de Nacimiento</th>
<th>Lugar de Nacimiento</th>
<th>Acta de Nacimiento</th>
</tr>
</thead>
<tbody>
<tr class="tabla" *ngFor="let user of actas">
<td class="txt-left">{{user.nombre}}</td>
<td>{{user.DNI}}</td>
<td>{{user.FechaNacimiento}}</td>
<td>{{user.LugarNacimiento}}</td>
<td>{{user.ActaNacimiento}}</td>
</tr>
</tbody>
</table>
</ng-template>
</div>
busqueda.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-busqueda',
templateUrl: './busqueda.component.html',
styleUrls: ['./busqueda.component.css'],
})
export class BusquedaComponent implements OnInit {
searchValue: string = null;
items = [];
condition: boolean = null;
prevText: string = '';
actas = [{
"nombre": "Lourdes del Mar",
"DNI": "40.775.265",
"FechaNacimiento": "17/02/1998",
"LugarNacimiento": "La Rioja, Capital",
"ActaNacimiento": "VER"
},
{
"nombre": "Lede, Milva Ernestina",
"DNI": "44.123.456",
"FechaNacimiento": "24/04/2004",
"LugarNacimiento": "La Rioja, Capital",
"ActaNacimiento": "VER"
},
{
"nombre": "Lede, Guadalupe Esmeralda",
"DNI": "01.234.567",
"FechaNacimiento": "13/11/2005",
"LugarNacimiento": "La Rioja, Capital",
"ActaNacimiento": "VER"
},
{
"nombre": "Lede, Ángel Gustavo",
"DNI": "23.670.990",
"FechaNacimiento": "07/01/1974",
"LugarNacimiento": "Buenos Aires, Capital Federal",
"ActaNacimiento": "VER"
},
{
"nombre": "Mansilla Kukulis, Susana Estela",
"DNI": "23.963.589",
"FechaNacimiento": "24/06/1974",
"LugarNacimiento": "La Rioja, Capital",
"ActaNacimiento": "VER"
}
];
res_list = [];
res_cnt: number = 0;
onSubmit($event){
if($event.keyCode === 13){
this.condition = true;
this.prevText = this.searchValue;
this.res_cnt = 0;
this.res_list = [];
setTimeout(() => {
this.condition = false;
for(let i=0; i<this.actas.length; i++){
if(this.actas[i].nombre === this.searchValue
|| this.actas[i].nombre.startsWith(this.prevText)){
this.res_cnt += 1;
this.res_list.push(this.actas);
}
}
}, 3000);
this.searchValue = null;
}
}
//paginación
pageOfItems: Array<any>;
onChangePage(pageOfItems: Array<any>) {
// update current page of items
this.pageOfItems = pageOfItems;
}
constructor() { }
ngOnInit(): void {
console.log(123);
this.items = Array(150).fill(0).map((x, i) => ({ id: (i + 1)}));
}
}
Busqué por internet y no encuentro la lógica que necesito para mi aplicación.
Si es que sirve, me guié con este tutorial.