按日期在Ember中过滤

时间:2014-12-05 02:50:38

标签: ember.js

我正在寻找一种方法来计算今天我的ember.store的所有条目。为此,我编写了这个控制器方法:

// controllers/todos-controller.js
import Ember from 'ember';

export default Ember.ArrayController.extend({
  sortProperties: ['time'],
  sortAscending: false,
  actions: {
    createTodo: function() {
      var title = this.get('newTitle');
      if (!title.trim()) { return; }

      var todo = this.store.createRecord('todo', {
         title: title
      });
      this.set('newTitle', '');
     todo.save();
    }
  },
  countTodos: function() {
    // count all todos added since midnight
    var d = new Date();
    d.setHours(0,0,0,0);
    return this.gte('time', d).get('length');
  }.property('@each.time'),
});

和模型

import DS from 'ember-data';

export default DS.Model.extend({
  title: DS.attr('string'),
  time: DS.attr('string', {
    defaultValue: function() { return new Date(); }
  })
});

但是,当我拨打countTodos时,我收到了错误

Uncaught TypeError: undefined is not a function

基于the documentation我认为我可以将gte应用于数组。 如何按日期计算?

1 个答案:

答案 0 :(得分:1)

很抱歉想发表评论,但我没有声名鹊起......

事实上在您的countTodos this引用您的arrayController和arrayController没有方法.gte

http://emberjs.com/api/classes/Ember.ArrayController.html

<强> [UPDATE]

有问题的请求:

在Ember arrayControllers中过滤内容的一种方法:(如果您需要过滤模板中{{each}}循环显示的内容,而不实际调整&#34;内容&#34;请使用{{1} }如果只是为了获得带有filtred元素的arrayCopy,只需在自定义函数中使用它...:)

arrangedContent