Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diversos Filtros

Em uma aplicacao de biblioteca, como fazer se ao inves de filtrar os livros somente pelo nome eu quisesse filtrar pelo autor tambem ? Teria que fazer um outro arquivo de filtro ? Queria poder colocar todos os filtros de livro em um arquivo so. Vou deixar meu codigo abaixo.

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({
    name: 'filterByName'
})

export class FilterByName implements PipeTransform{

    transform(books, digitado: string){
        digitado = digitado.toLowerCase();
        return books.filter(book => book.nome.toLowerCase().includes(digitado));
    }

}
2 respostas
solução!

Boa tarde.

Você precisará criar um filtro para cada coisa que necessitar. Em Angular 1.X, o padrão era ele pesquisar em todas as propriedades do objeto. Porém, isso foi removido no Angular 2 por problemas de performance. No caso, crie um filtro filterByNameAndAutor e utilize-o no lugar do filtro que só considera o nome.

Você pode declarar todos os filtros de um Livro em um arquivo sim, cada um sendo exportado pelo módulo.

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({
    name: 'filterByName'
})

export class FilterByName implements PipeTransform{

  // código omitido 

}

export class FilterByNameAndAuthor implements PipeTransform{

  // código omitido 

}

export class FilterByNameAndPrice implements PipeTransform{

  // código omitido 

}

Sucesso e bom estudo meu aluno.

Boa tarde.

Você precisará criar um filtro para cada coisa que necessitar. Em Angular 1.X, o padrão era ele pesquisar em todas as propriedades do objeto. Porém, isso foi removido no Angular 2 por problemas de performance. No caso, crie um filtro filterByNameAndAutor e utilize-o no lugar do filtro que só considera o nome.

Você pode declarar todos os filtros de um Livro em um arquivo sim, cada um sendo exportado pelo módulo.

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({
    name: 'filterByName'
})

export class FilterByName implements PipeTransform{

  // código omitido 

}


@Pipe({
    name: 'filterByNameAndAuthor'
})
export class FilterByNameAndAuthor implements PipeTransform{

  // código omitido 

}

@Pipe({
    name: 'filterByNameAndPrince'
})
export class FilterByNameAndPrice implements PipeTransform{

  // código omitido 

}

Sucesso e bom estudo meu aluno.