Reputation: 83
I have a service that contains information about members. One of the variables here is the isActive boolean.
In my component, i call the service method to put the information in a variable before showing it in the component.
I would like to only show those which have the isActive set to true.
My service:
import { Injectable } from '@angular/core';
@Injectable()
export class UserinfoService
{
//methods or services
getMembers()
{
return [
{
imageUrl: "../assets/images/filler.jpg",
firstName: "filler",
lastName: "filler",
number: "+123456798",
bio: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean imperdiet, velit a luctus facilisis, eros nisi tempus est, et hendrerit lacus enim eget sapien. Fusce tristique ut augue vitae interdum. Proin ultrices bibendum rhoncus. Duis non velit nec tellus ultricies consequat. Integer convallis ultrices nibh, eget malesuada augue. Nullam elementum orci in lorem interdum porta. Mauris a dapibus turpis. Nulla id nulla sit amet neque rhoncus blandit. Suspendisse potenti. Fusce vel augue pellentesque, suscipit nisi vel, fermentum tellus. Pellentesque maximus odio neque, quis iaculis eros malesuada sed. Praesent vehicula vestibulum ipsum.",
isActive: true
},
{
imageUrl: "../assets/images/filler.jpg",
firstName: "filler",
lastName: "filler",
number: "+123456798",
bio: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean imperdiet, velit a luctus facilisis, eros nisi tempus est, et hendrerit lacus enim eget sapien. Fusce tristique ut augue vitae interdum. Proin ultrices bibendum rhoncus. Duis non velit nec tellus ultricies consequat. Integer convallis ultrices nibh, eget malesuada augue. Nullam elementum orci in lorem interdum porta. Mauris a dapibus turpis. Nulla id nulla sit amet neque rhoncus blandit. Suspendisse potenti. Fusce vel augue pellentesque, suscipit nisi vel, fermentum tellus. Pellentesque maximus odio neque, quis iaculis eros malesuada sed. Praesent vehicula vestibulum ipsum.",
isActive: false
},
{
imageUrl: "../assets/images/filler.jpg",
firstName: "filler",
lastName: "filler",
number: "+123456798",
bio: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean imperdiet, velit a luctus facilisis, eros nisi tempus est, et hendrerit lacus enim eget sapien. Fusce tristique ut augue vitae interdum. Proin ultrices bibendum rhoncus. Duis non velit nec tellus ultricies consequat. Integer convallis ultrices nibh, eget malesuada augue. Nullam elementum orci in lorem interdum porta. Mauris a dapibus turpis. Nulla id nulla sit amet neque rhoncus blandit. Suspendisse potenti. Fusce vel augue pellentesque, suscipit nisi vel, fermentum tellus. Pellentesque maximus odio neque, quis iaculis eros malesuada sed. Praesent vehicula vestibulum ipsum.",
isActive: true
},
];
}
//constructor
constructor()
{
}
}
my component:
import { Component, OnInit } from '@angular/core';
import { UserinfoService } from '../services/userinfo.service';
@Component({
selector: 'app-teammembers',
templateUrl: './teammembers.component.html',
styleUrls: ['./teammembers.component.css']
})
export class TeammembersComponent implements OnInit
{
//props
teammembers: any[];
constructor(userinfoService: UserinfoService)
{
//getData
this.teammembers = userinfoService.getMembers();
}
ngOnInit() {
}
}
Thanks
Upvotes: 0
Views: 67
Reputation: 19632
import { Component, OnInit } from '@angular/core';
import { UserinfoService } from '../services/userinfo.service';
@Component({
selector: 'app-teammembers',
templateUrl: './teammembers.component.html',
styleUrls: ['./teammembers.component.css']
})
export class TeammembersComponent implements OnInit
{
//props
teammembers: any[];
constructor(userinfoService: UserinfoService)
{
//getData
this.teammembers = userinfoService.getMembers()
.filter(member => member.isActive); // add the filter condititon
}
ngOnInit() {
}
}
UPDATE
this.teammembers = userinfoService.getMembers()
.filter(member => member.isActive && member.lastName.includes("ver")); // ES6 update
Upvotes: 1
Reputation: 8478
You can filter using Array.prototype.filter():
constructor(userinfoService: UserinfoService)
{
//getData
this.teammembers = userinfoService.getMembers()
.filter(member=>member.isActive);
}
Upvotes: 2
Reputation: 1103
There could be multiple ways to achieve this. one could be to filter your array in your component using filter method on array and check if isActive property is true second way could be to implement the logic in your html and use directive like *ngIf and hide the information which has isActive to false like this
*ngIf="!isActive"
Upvotes: 0