Angular 16 Search Filter Array of Objects Data Tutorial

[ad_1]

Creating a search filter for an array of objects in Angular. In this tutorial, you will learn how to implement a search filter for an array of object data like id, value, key using Angular 16.

Angular 16 Search Filter Array of Objects Data Tutorial

Steps to create filter array of object data like key value in angular 16:

  • Step 1 – Set Up Your Angular Application
  • Step 2 – Create a Component
  • Step 3 – Create a Data Source
  • Step 4 – Implement the Search Filter
  • Step 5 – Create the HTML Template
  • Step 6 – Add FormsModule
  • Step 7 – Run Your Angular Application

Step 1 – Set Up Your Angular Application

If you haven’t already, create a new Angular application using Angular CLI:

ng new angular-search-filter
cd angular-search-filter

Step 2 – Create a Component

Next, create a new component where you will implement the search filter. For this example, let’s call it product-list:

ng generate component product-list

Step 3 – Create a Data Source

For this example, let’s assume you have an array of objects representing products. You can create a file named products.ts in your project’s src/app directory to define your data:

// src/app/products.ts

export const products = [
  { id: 1, name: 'Product 1', price: 10 },
  { id: 2, name: 'Product 2', price: 15 },
  { id: 3, name: 'Product 3', price: 20 },
  // Add more products as needed
];

Step 4 – Implement the Search Filter

Now, open the product-list.component.ts file in the src/app/product-list directory and implement the search filter logic:

// src/app/product-list/product-list.component.ts

import { Component } from '@angular/core';
import { products } from '../products';

@Component({
  selector: 'app-product-list',
  templateUrl: './product-list.component.html',
  styleUrls: ['./product-list.component.css']
})
export class ProductListComponent {
  // Initialize the product list with all products
  productList = products;

  // Create a variable to store the search term
  searchTerm: string = '';

  // Function to filter products based on the search term
  filterProducts(): void {
    if (this.searchTerm.trim() !== '') {
      this.productList = products.filter(product =>
        product.name.toLowerCase().includes(this.searchTerm.toLowerCase())
      );
    } else {
      // If the search term is empty, show all products
      this.productList = products;
    }
  }
}

Step 5 – Create the HTML Template

Open the product-list.component.html file and create the HTML template for your component:

<!-- src/app/product-list/product-list.component.html -->

<div>
  <h2>Product List</h2>
  <input type="text" [(ngModel)]="searchTerm" (input)="filterProducts()" placeholder="Search products">
  <ul>
    <li *ngFor="let product of productList">
      {{ product.name }} - {{ product.price | currency }}
    </li>
  </ul>
</div>

Step 6 – Add FormsModule

To enable two-way data binding and form features, you need to import and add the FormsModule to your app.module.ts file:

// src/app/app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms'; // Import FormsModule

import { AppComponent } from './app.component';
import { ProductListComponent } from './product-list/product-list.component';

@NgModule({
  declarations: [
    AppComponent,
    ProductListComponent
  ],
  imports: [
    BrowserModule,
    FormsModule // Add FormsModule to the imports array
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Step 7 – Run Your Angular Application

Now, you can run your Angular application:

ng serve

Your Angular app will be available at http://localhost:4200/. Open this URL in your browser to see the product list with the search filter.

Conclusion

That’s it! You’ve implemented a search filter for an array of objects in Angular 16. Users can now enter a search term, and the list of products will be filtered based on that term.

Recommended Angular Tutorials

[ad_2]

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

GSTIN is 03EGRPS4248R1ZD.

Contact
Jassweb, Rai Chak, Punjab, India. 143518
Item added to cart.
0 items - 0.00