我有一个应用程序,我可以创建待办事项并根据它的日期列出,
类似的东西:
---------------
Today - [todayDate]
---------------
Todo #1
Todo #2
---------------
Tomorrow - [tomorrowDate]
---------------
Todo #1
Todo #2
所以我这样做是首先创建所有过滤条
<div id="today-filter" class="filter-container">
<div class="filter-bar">
<label class="filter-title">Today</label>
<label class="filter-date">{{generateDate}}</label>
</div>
</div>
{{#each todo in todayFilter itemController='todo'}}
{{partial 'todolist'}}
{{/each}}
<div id="tomorrow-filter" class="filter-container">
<div class="filter-bar">
<label class="filter-title">Tomorrow</label>
<label class="filter-date">{{generateDate 1}}</label>
</div>
</div>
{{#each todo in tomorrowFilter itemController='todo'}}
{{partial 'todolist'}}
{{/each}}
并且每个人都在控制器中获得了自己的功能,这将返回不同的过滤记录:
todayFilter: function(){
return this.get('model').filter(function(todo, index){
var date = todo.get('date');
if(moment().isSame(date, 'days')){ //<-- If the date is same as today, then it's today
return todo;
}
});
}.property('model.@each.date'),
tomorrowFilter: function(){
return this.get('model').filter(function(todo, index){
var date = todo.get('date');
if((moment().add(1, 'days')).isSame(date, 'days')){ //<-- If the date is same as today+1 day, then its tomorrow
return todo;
}
});
}.property('model.@each.date'),
所以问题是我是否需要在'今天'的范围内列出它们 - &gt; '一周以内',
我需要编写7种不同的功能?
我确信有更好的方法,也许我现在在做什么是愚蠢的,但我无法建立更好的逻辑。
答案 0 :(得分:0)
我不知道你的模型的结构,所以这是基于简单的假设:
假设您的模型对象有2个字段date
和available
。每天创建一个排序列表可以做的一件简单的事情就是:
{ date: new Date() }
Array.concat
将您的模型数组合并到此这有帮助吗?
这是complete solution。 我没有使用concat来简化,因为解决方案已经非常复杂了。