2013-06-04 1 views

risposta

31

Aggiornamento:filterProperty() è stato sostituito da filterBy(). L'utilizzo è lo stesso, vedi il commento qui sotto.

filterBy() è una scorciatoia per filter() che consente di filtrare rapidamente un'enumerazione basata su una proprietà specificata degli elementi dell'enumerabile. Utilizzare filter() se è necessario fare qualcosa di più complicato o fuori dall'ordinario in cui non è possibile utilizzare filterBy().

Per esempio, supponendo che hanno avuto un array di oggetti come questo:

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

E si voleva avere una proprietà calcolata che utilizza filtrare la matrice per includere solo le persone con il firstName == 'Luke':

utilizzando filter():

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

utilizzando filterBy():

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

JSBin example

+11

NB 'filterProperty' è stato deprecato in favore di' filterBy'. Stesso uso https://github.com/emberjs/website/pull/882 – andorov