Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
Javascript 按余烬控制器中的日期筛选模型_Javascript_Date_Ember.js_Coffeescript_Momentics - Fatal编程技术网

Javascript 按余烬控制器中的日期筛选模型

Javascript 按余烬控制器中的日期筛选模型,javascript,date,ember.js,coffeescript,momentics,Javascript,Date,Ember.js,Coffeescript,Momentics,我有这个DS.Model Model = DS.Model.extend date: DS.attr "string" amount_payed: DS.attr "string" user_name:DS.attr "string" `export default Model` 目前我的控制器中没有任何内容 Controller = Em.Controller.extend() 导出默认控制器 这是路线 Route = Ember.Route.extend

我有这个DS.Model

   Model = DS.Model.extend

  date: DS.attr "string"
  amount_payed: DS.attr "string"
  user_name:DS.attr "string"

`export default Model`
目前我的控制器中没有任何内容

Controller = Em.Controller.extend()
导出默认控制器

这是路线

 Route = Ember.Route.extend 

  model: () ->
    return @store.find "user-account"

`export default Route`
从服务器上,我得到了json格式的响应,日期值如下

"date": "1995-12-25 00:00:00"
这是示例模板

{{#each detail in model}}
 <li>{{detail.date}}{{detail.amount_paid}}{{detail.user_name}}</li>
{{/each}}
{{{#模型中的每个细节}
  • {{detail.date}{{detail.amount{u paid}{{detail.user{u name}}
  • {{/每个}}
    如何在我的控制器中对模型进行排序/过滤,以便当模板使用
    {{{#模型中的每个细节}}
    呈现模型时,首先显示最新日期的细节。基本上我想使用date属性对模型进行排序。记住日期类似于
    “date”:“1995-12-25 00:00:00”

    如果你们也能用javascript(不一定是coffescript)提供解决方案,那就没问题了。有几种方法可以做到这一点:
    computed.sort
    SortableMixin
    ,实现自定义排序功能

    目前比较棘手的是,日期是字符串,因此需要将其转换为可以进行比较的内容(数字时间戳或日期对象等)。您可以在排序期间(在排序功能中)或在模型本身上进行转换,以便在应用程序的其他位置更轻松地重用和格式化日期

    下面我提供的示例在排序期间执行转换。注意,由于Safari中存在日期解析错误,所以不能只执行(新日期(字符串))

    此答案假设使用了ember cli和语法,这是从ember 2.0开始的当前最佳实践

    计算的
    排序的文档如下所示:

    从“余烬”导入余烬;
    常数{
    计算,
    控制器
    }=余烬;
    导出默认控制器.extend({
    sortedModel:computed.sort('model',函数(a,b){
    设timestamp=makeTimestamp(a);
    设timestamp=makeTimestamp(b);
    如果(时间戳A>时间戳B){
    返回1;
    }else if(timestama
    然后在模板中像这样使用它

    {{#each sortedModel as |detail|}}
      <li>{{detail.date}}{{detail.amount_paid}}{{detail.user_name}}</li>
    {{/each}}
    
    {{{#每个分类模型为|细节}
    
  • {{detail.date}{{detail.amount{u paid}{{detail.user{u name}}
  • {{/每个}}
    请注意,
    {{{#模型中的每个细节}}
    是一种不推荐使用的语法,从~1.10开始的当前语法是
    {{#模型中的每个细节}

    {{#each sortedModel as |detail|}}
      <li>{{detail.date}}{{detail.amount_paid}}{{detail.user_name}}</li>
    {{/each}}