Wiem, że mogę nazwać taką potokiem:
{{ myData | date:'fullDate' }}
Tutaj potok daty ma tylko jeden argument. Jaka jest składnia wywoływania potoku z większą liczbą parametrów, z szablonu HTML komponentu i bezpośrednio w kodzie?
javascript
angular
angular2-pipe
Eran Shabi
źródło
źródło
arg1
iarg2
gdzie oba były opcjonalne i chciałeś tylko przekazaćarg2
?undefined
jako pierwszy argument, uzyska domyślną wartość.transform(value:any, arg1:any, arg2:any, arg3:any)
korzystać z operatora reszty, wydaje mi się, że lepiej:transform(value:any, ...args:any[])
Brakuje rzeczywistej rury.
Wiele parametrów można oddzielić dwukropkiem (:).
Możesz także łączyć rury, takie jak:
źródło
Od wersji beta.16 parametry nie są już przekazywane do tablicy jako
transform()
metoda, ale jako indywidualne parametry:https://github.com/angular/angular/blob/master/CHANGELOG.md#200-beta16-2016-04-26
źródło
arg1
iarg2
gdzie oba były opcjonalne i chciałeś tylko przekazaćarg2
?arg1
? JakisFullDate
. Pytam tylko, ponieważ każdy przykład tego używa.'arg1'
i'arg2'
są po prostu literałami ciągów przekazywanymi jako dodatkowe parametry do potoku. Możesz użyć dowolnej wartości lub odwołania dostępnego w tym zakresie (bieżąca instancja komponentu)Używam rur w Angular 2+ do filtrowania tablic obiektów. Poniżej podano wiele argumentów filtru, ale możesz wysłać tylko jeden, jeśli odpowiada to Twoim potrzebom. Oto przykład StackBlitz . Znajduje klucze, które chcesz filtrować, a następnie filtruje według podanej wartości. To właściwie dość proste, jeśli wydaje się skomplikowane, nie jest, sprawdź przykład StackBlitz .
Oto rura wywoływana w dyrektywie * ngFor,
Oto fajka,
A tutaj jest komponent zawierający obiekt do filtrowania,
Przykład StackBlitz
Przykład GitHub: rozwidlaj roboczą kopię tego przykładu tutaj
* Należy pamiętać, że w odpowiedzi udzielonej przez Guntera Gunter stwierdza, że tablice nie są już używane jako interfejsy filtrów, ale przeszukałem podany przez niego link i nie znalazłem nic, co przemawiałoby za tym twierdzeniem. Również podany przykład StackBlitz pokazuje ten kod działający zgodnie z przeznaczeniem w Angular 6.1.9. Będzie działać w Angular 2+.
Happy Coding :-)
źródło
Rozszerzony od: user3777549
Filtr wielowartościowy w jednym zestawie danych (tylko odniesienie do klucza tytułu)
HTML
filterMultiple
źródło