Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular 2 - Remove element from object array according to one of its properties

Tags:

angular

I'm trying to Remove an element from object array according to one of its properties, in Angular 2.

How can I implement the removeItem function so it will remove the comment object from the array according to its id property and thus remove it from the list ?

Here's the HTML template (loops with ngFor for all comments):

<div *ngFor="let comment of list">
     <button (click)="removeItem({{comment.id}})">delete</button>
     (... comment.... )
     ....

Here the Angular 2 code:

export class Comments {

    list =
        [new Comment(1, "text one", "koby", new Date("2015.01.02")),
         new Comment(2, "text two", "adim", new Date("2017.02.02")),
         new Comment(6, "text six", "asaf", new Date("2016.11.04"))
        ];

    addItem(val: string) {
        this.list.push(new Comment(3, "kokoko", "kobydo", new Date("2015.01.02")));
    }
    removeItem(id: number) {
        // How do I remove it from the array ?
    }
}

export class Comment {

    constructor(
        public id: number,
        public text: string,
        public creator: string,
        public date: Date
    ) { }

}
like image 917
Koby Douek Avatar asked Feb 21 '17 11:02

Koby Douek


Video Answer


1 Answers

You can .filter() it:

removeItem(id: int) {
    this.list = this.list.filter(item => item.id !== id);
}
like image 131
Jai Avatar answered Sep 22 '22 20:09

Jai