2016-09-23 5 views
1

Je suis en train de mettre en œuvre un tuyau de troncature:Comment faire une pipe multi-argument angulaire 2.0.0

import { Pipe, PipeTransform } from '@angular/core' 

@Pipe({ name: 'truncate' }) 
export class TruncatePipe implements PipeTransform { 
    transform(value: string, amount: number, truncateChar: string) : string { 
     console.log("amount", amount); 
     console.log("truncateChar", truncateChar); 
     let limit = amount ? amount : 10; 
     let trail = truncateChar ? truncateChar : '...'; 
     return value.length > limit ? value.substring(0, limit) + trail : value; 
    } 
} 

D'une certaine façon dans mon modèle, il imprime toujours undefined pour truncateChar, mais il ne capte la amount.

Dans mon modèle, j'ai essayé les syntaxes suivantes (sur leur propre tour):

{{ item.name | truncate: 20 : "a" }} 
{{ item.name | truncate: 20 : 'a' }} 
{{ item.name | truncate: 20 : a }} 

Comment pourrais-je mettre en œuvre cela en utilisant plusieurs arguments (caractères max et le caractère facultatif à la fin)?

Répondre

0

Je viens de tester votre pipe, cela fonctionne parfaitement pour moi:

{{ name | truncate: 20 : 'c' }} 

Dans la console je reçois:

montant 20

truncateChar c

Votre problème pourrait être ailleurs.

+1

Oui, aucune idée de ce qui se passait. Ah ... puisque c'est dans un autre dossier (partagé maintenant), je suppose que la compilation n'a pas pris le changement. Bien qu'attendre, je voyais encore le "console.log" .... très étrange. Mais en effet, maintenant ça marche. – PascalVKooten