如何从Ember夹具中选择最佳结果?

时间:2014-09-27 09:16:11

标签: ember.js ember-data fixtures

我在一系列日期中获得了以下数据的以下数据,目前这些数据是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'
    }
]

最明智的方法是获取当前价格(由最高日期定义)或今年最高价值?

1 个答案:

答案 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。