2017-08-05 4 views
1

J'ai besoin d'utiliser les données et les trier par prix d'abord le tuyau fonctionne très bien, mais quand j'ajoute nouvel élément, il l'ajouter dans la dernière ligne et ne pas les trier à nouveautuyau angulaire 4 ngFor pas re filtre après ajouter un élément

<tr *ngFor="let game of gameslist | orderBy: 'amount'" (click)="GameClick(game.id)">...</tr> 

ma pipe

import { Pipe, PipeTransform } from '@angular/core'; 
@Pipe({ 
    name: 'orderBy' 
}) 
export class OrderByPipe implements PipeTransform { 

    transform(array: Array<string>, args: string): Array<string> { 
    array.sort((a: any, b: any) => { 
     if (a[args] > b[args]) { 
     return -1; 
     }else if (a[args] < b[args]) { 
     return 1; 
     }else { 
     return 0; 
     } 
    }); 
    return array; 
    } 
} 

ajouter Avant before add

ajouter après after add

+1

Voici un poste qui traite de tuyaux et comment ils fonctionnent. Cela devrait résoudre votre problème. https://stackoverflow.com/questions/34456430/ngfor-doesnt-update-data-with-pipe-in-angular2 – jmw5598

+0

merci problème résolu en ajoutant 'pure: false' à la pipe –

Répondre

1

résolu par ajouter pure: false à la configuration du tuyau

tous grâce à jmw5598