2013-06-04 14 views

Antwort

31

Aktualisierung:filterProperty() wurde durch filterBy() ersetzt. Die Verwendung ist die gleiche, siehe Kommentar unten.

filterBy() ist eine Verknüpfung für filter(), mit der Sie schnell ein Enumerable basierend auf einer angegebenen Eigenschaft der Elemente des Enumerable filtern können. Verwenden Sie filter(), wenn Sie etwas komplizierter oder ungewöhnliches tun müssen, wo Sie filterBy() nicht verwenden können.

Zum Beispiel Sie unter der Annahme hatte ein Array von Objekten wie folgt aus:

[ 
    {firstName: 'Kris', lastName: 'Selden'}, 
    {firstName: 'Luke', lastName: 'Melia'}, 
    {firstName: 'Formerly Alex', lastName: 'Matchneer'} 
] 

Und Sie wollten eine berechnete Eigenschaft haben, die das Array verwendet filtern, um nur die Menschen sind mit dem firstName == 'Luke':

filter() mit:

filterComputed: function() { 
    return this.get('content').filter(function(item, index, enumerable){ 
    return item.firstName == 'Luke'; 
    }); 
}.property('[email protected]') 

mit filterBy():

filterByComputed: function() { 
    return this.get('content').filterBy('firstName', 'Luke'); 
}.property('[email protected]') 

JSBin example

+11

NB 'filterProperty' wurde zugunsten von' filterBy' veraltet. Gleiche Verwendung. https://github.com/emberjs/website/pull/882 – andorov