Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 在余烬中按日期筛选_Ember.js - Fatal编程技术网

Ember.js 在余烬中按日期筛选

Ember.js 在余烬中按日期筛选,ember.js,Ember.js,我正在寻找一种方法来计算今天我的ember.store的所有条目。为了实现这一点,我编写了以下控制器方法: // controllers/todos-controller.js import Ember from 'ember'; export default Ember.ArrayController.extend({ sortProperties: ['time'], sortAscending: false, actions: { createTodo: functi

我正在寻找一种方法来计算今天我的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

基于此,我认为我可以将
gte
应用于阵列我怎样才能改为按日期计数?

很抱歉,我想发表评论,但我没有enoguh的声誉

事实上,在您的
countTodos
中,此
指的是您的
arrayController
,而arrayController没有方法
。gte

[更新]

应有关请求:

在Ember ArrayController中过滤内容的一种方法:(如果您需要过滤模板中{{each}}循环显示的内容,而不实际过滤“内容”,请使用
ArragedContent
属性,如果只是为了获得带有过滤元素的arrayCopy,请在自定义函数中使用它…:)


嗨,温先生,谢谢你的回复。如何按范围而不是布尔比较进行筛选?在arrayController中有几种筛选数据的方法。最灵活的方法是在使用ArrayFilter属性的同时使用“arrangedContent”。Vinz先生,谢谢你的代码建议。它工作得很好。代码示例在return语句之前缺少closing“)”。
 arrangedContent : function(){
    var data = this.get("content");
    data=data.filter(function(modelInstance){
       //return true if the data should be in array false otherwise
       //examples :
       return modelInstance.get("myDateProperty")>new Date()
       //2
       return modelInstance.get("myStringProperty").match(new RegExp("myterms","myRegexp"))
       //and so on ....

    });
    return data;
 }