Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

102
Vistas
Filtro angular 4 por tubería

Estoy tratando de emular lo que en AngularJS es OrderBy.

Dado este este tipo de matriz. Necesito filtrar los autos por car_category.

 [ { "car_category": 3, "name": "Fusion", "year": "2010" }, { "car_category": 2, "name": "Mustang", "year": "2010" }, { "car_category": 3, "name": "Fiesta", "year": "2010" }, ]

Así es como se ve mi código hasta ahora

coche.componente.html

 <div *ngIf="products"> <ul *ngFor="let product of products | filterBy: car_category"> <li>{{car.name}}</li> </ul> </div>

coche.componente.ts

 import { Component, OnInit } from '@angular/core'; import { CarService } from '../car.service'; import { ICars } from '../ICars'; import { FilterByPipe } from '../filter-by.pipe'; @Component({ selector: 'app-home-page', templateUrl: './car.component.html', styleUrls: ['./car.component.css'] }) export class CarComponent implements OnInit { cars: Array<ICars>; errorMessage: string; filteredCars: any; car_category= 3; constructor(private _carService: CarService) { } ngOnInit() { this._carService.getCars() .subscribe( cars => this.cars = cars, error => this.errorMessage = error ); } }

filet-by.pipe.ts

 import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'filterBy' }) export class FilterByPipe implements PipeTransform { transform(value, args) { if (!args[0]) { return value; } else if (value) { return value.filter(item => { // tslint:disable-next-line:prefer-const for (let key in item) { if ((typeof item[key] === 'string' || item[key] instanceof String) && (item[key].indexOf(args[0]) !== -1)) { return true; } } }); } } }

¿Cómo se debe refactorizar mi tubería?

ACTUALIZAR así es como se ve mi tubería en este momento. Tenga en cuenta que el automóvil es un número y el año se muestra como una cadena

 import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'filterBy' }) export class FilterByPipe implements PipeTransform { transform(value, args) { if (!args[0]) { return value; } else if (value) { return value.filter(item => { // tslint:disable-next-line:prefer-const for (let key in item) { if ((typeof item[key] === 'number' || item[key] instanceof Number) && (item[key].indexOf(args[0]) !== -1)) { return true; } } }); } } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Escribir canalizaciones genéricas personalizadas puede ser complicado. Si observa el código fuente Angular 1 , obtendrá lo que quiero decir.

Por lo tanto, sugiero usar una biblioteca, como ng-pipes . Para ser honesto, no he probado la versión Angular 2 , pero fue bastante útil para Angular 1 .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda