Javascript 按余烬控制器中的日期筛选模型
我有这个DS.ModelJavascript 按余烬控制器中的日期筛选模型,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
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}}