Ember.js 在日期范围内筛选

Ember.js 在日期范围内筛选,ember.js,ember-data,Ember.js,Ember Data,我有一个有很多次旅行的邮轮模型。旅行存储开始和结束日期。我想过滤在最早开始日期或之后开始的邮轮,以及在最晚结束日期最晚的邮轮 app/models/cruise.js app/models/trip.js app/templates/index.hbs 如何更改此控制器中的filteredCruises以过滤在给定日期内旅行的邮轮 app/controllers/index.js 我已经有一段时间没有接触过Ember了,我也没有测试/执行过这段代码,但我认为这可能适合您,我相信这可以优化: [.

我有一个有很多次旅行的邮轮模型。旅行存储开始和结束日期。我想过滤在最早开始日期或之后开始的邮轮,以及在最晚结束日期最晚的邮轮

app/models/cruise.js

app/models/trip.js

app/templates/index.hbs

如何更改此控制器中的filteredCruises以过滤在给定日期内旅行的邮轮

app/controllers/index.js


我已经有一段时间没有接触过Ember了,我也没有测试/执行过这段代码,但我认为这可能适合您,我相信这可以优化:

[...]

filteredCruises: function() {
    var earliestStartDate = this.get('earliestStartDate');
    var latestEndDate = this.get('latestEndDate');
    var cruises = this.get('model.cruises');

    return cruises.filter(function(cruise) {
        return cruise.get('trips').filter(function(trip) {
            return ((trip.get('starts_on') >= earliestStartDate) && (trip.get('ends_on') <= latestEndDate));
        });
    });

}.property('model.cruises','earliestStartDate','latestEndDate'),

[...]
import DS from 'ember-data';

export default DS.Model.extend({
  starts_on: DS.attr('date'),
  ends_on: DS.attr('date')
});
{{date-picker date=earliestStartDate valueFormat='YYYY-MM-DD'}
{{date-picker date=latestEndDate valueFormat='YYYY-MM-DD'}}
[...]

filteredCruises: function() {
    var earliestStartDate = this.get('earliestStartDate');
    var latestEndDate = this.get('latestEndDate');
    var cruises = this.get('model.cruises');

    return cruises;
}.property('model.cruises','earliestStartDate','latestEndDate'),

[...]
[...]

filteredCruises: function() {
    var earliestStartDate = this.get('earliestStartDate');
    var latestEndDate = this.get('latestEndDate');
    var cruises = this.get('model.cruises');

    return cruises.filter(function(cruise) {
        return cruise.get('trips').filter(function(trip) {
            return ((trip.get('starts_on') >= earliestStartDate) && (trip.get('ends_on') <= latestEndDate));
        });
    });

}.property('model.cruises','earliestStartDate','latestEndDate'),

[...]