The goal here is not to have a filter filter, or even a filter that runs 
with every change detected. Really, the goal is to employ Angular's already 
built pipes + pipe extensibility to pass data through arbitrary filter 
during metadata reference resolution. In fact, the system is designed so 
that most of the displayed data is a one time binding; the filter does not 
run more than once. Most of the time the filters employed are the ones 
included in Angular's existing pipes (lowercase, json, currency, etc).

This is how this would work:

<Data comes in, with metadata (i.e. "CurrencyPipe")> -> MetadataPipe -> 
Applies whatever pipes are in the metadata -> Currency Pipe -> Resolved 
data -> Resolved data is shown on UI. 

And sometimes we do place the MetadataPipe directly in the UI, but again 
it's sending the data through quick pure filters. So I hope this update 
helps clarify the goal, because it's not necessarily to have a "filter 
filter."


On Wednesday, May 11, 2016 at 10:37:11 PM UTC-7, Sander Elias wrote:
>
> Hi Aaron,
>
>
> I was about to make you a sample on how to build a pipe that does what you 
> need. However, while preparing that I did reread the (apparently quite 
> updated) pipe docs. 
> Here is a quote from the docs 
> <https://angular.io/docs/ts/latest/guide/pipes.html>:
>
> No FilterPipe or OrderByPipe
>> Angular does not ship with pipes for filtering or sorting lists. 
>> Developers familiar with Angular 1 know these as filter and orderBy. There 
>> are no equivalents in Angular 2.
>> This is not an oversight. Angular 2 is unlikely to offer such pipes 
>> because (a) they perform poorly and (b) they prevent aggressive 
>> minification.
>> Both filter and orderBy require parameters that reference object 
>> properties. We learned earlier that such pipes must be impure 
>> <https://angular.io/docs/ts/latest/guide/pipes.html#pure-and-impure-pipes> 
>> and that Angular calls impure pipes in almost every change detection cycle.
>> Filtering and especially sorting are expensive operations. The user 
>> experience can degrade severely for even moderate sized lists when Angular 
>> calls these pipe methods many times per second. The filter and orderBy have 
>> often been abused in Angular 1 apps, leading to complaints that Angular 
>> itself is slow. That charge is fair in the indirect sense that Angular 1 
>> prepared this performance trap by offering filter and orderBy in the first 
>> place.
>
>
> If you after reading the last few paragraphs of the (linked above) docs 
> still want a filter_filter pipe, I will prepare a sample for you. 
>
> Regards
> Sander
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to