2014-05-01 24 views
6

Ember'de, eşleşen değerleri aradığınız diziyi filtrelemek kolaydır (Sadece dönüş adı == "John) Öğrendiğim şey, daha büyük veya daha küçük bir filtrenin nasıl filtreleneceğidir. . Vadesi nedeniyle on gün süre, ve sonra geri kalanTarih aralığına göre filtrele

: (startDate benim app bugün

öncedir tüm nesneleri döndürür Ben teslim bir koleksiyona sahip üç kategori halinde bu teslimatları bölmek istiyorum. Aşağıdaki örnek başka bir SO iletisinde buldum, ancak hedefimi gerçekleştirmek için nasıl kullanacağımı anlayamıyorum

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

, buraya gitmek seçim seçenekleri bir demet vardır: http://emberjs.com/api/#method_computed_filter orada, sen 'filtreyi', 'filterBy' bulacaksınız , 'gt' (daha büyük), 'gte' ve daha fazlası. – fanta

cevap

4

Sadece yapabilirsiniz:

this.get('content').filter(function(item){ 
    if(item.get('someProperty') > someVar) { 
     return true; 
    } 
}); 
0

Bu tanımlı tarih aralığında nesneleri dizisi dönmelidir. Ember'de çalışmalıyım^2.x.

filterComputed: computed('[email protected]', 'startDate', 'endDate', function() { 
 
    return this.get('content').filter(function(item) { 
 
    var contentDate = item.get('date'); // expecting item to have a date property 
 
    return contentDate > this.get('startDate') && bookingDate < this.get('endDate'); 
 
    }); 
 
})

ES6 ile bile böyle bir şey yapabileceğini: Daha basit bir gereklilik varsa

filterComputed: computed('[email protected]', 'startDate', 'endDate', function() { 
 
    return this.get('content').filter(item => item.get('date') > this.get('startDate') && item.get('date') < this.get('endDate')); 
 
})

, computed.filterBy() sizin için doğru olabilir. https://emberjs.com/api/classes/Ember.computed.html#method_filterBy

Ayrıca yararlı: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

İlgili konular