Koby Douek
Koby Douek

Reputation: 16693

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

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
    ) { }

}

Upvotes: 5

Views: 14847

Answers (1)

Jai
Jai

Reputation: 74738

You can .filter() it:

removeItem(id: int) {
    this.list = this.list.filter(item => item.id !== id);
}

Upvotes: 11

Related Questions