我在一系列日期中获得了以下数据的以下数据,目前这些数据是Ember灯具:
App.Stock.FIXTURES = [
{
id:1,
value:85.7,
date: '2014-01-01T00:00:00'
},
{
id:2,
value:82.7,
date: '2014-01-02T00:00:00'
},
{
id:3,
value:89.5,
date: '2014-01-03T00:00:00'
}
]
最明智的方法是获取当前价格(由最高日期定义)或今年最高价值?
答案 0 :(得分:1)
我会在控制器中定义这些计算出的属性。例如:
App.SomeRoute = Ember.Route.extend({
model: function() {
return this.store.find('stock');
}
});
App.SomeController = Ember.ArrayController.extend({
dateSorting: ['date:desc'],
sortedByDate: Ember.computed.sort('model', 'dateSorting'),
filteredByCurrentYear: Ember.computed.filter('model',function(stock) {
var currentYear = new Date().getFullYear();
// check if date begins with current year
return stock.get('date').indexOf(currentYear) === 0;
}),
valuesCurrentYear: Ember.computed.mapBy('filteredByCurrentYear', 'value'),
highestValueCurrentYear: Ember.computed.max('valuesCurrentYear'),
currentPrice: function() {
var highestDate = this.get('sortedByDate.firstObject');
return highestDate ? highestDate.get('value') : null;
}.property('sortedByDate')
});
对于日期计算,我建议使用momentjs。