【发布时间】:2015-10-17 19:15:35
【问题描述】:
我有以下数据:
$scope.events = [{
"date": "2015-01-01",
"name": "party"
}, {
"date": "2015-02-01",
"name": "birthday"
}, {
"date": "2015-03-01",
"name": "graduation"
}, {
"date": "2015-04-01",
"name": "wedding"
}];
并且用户可以选择一个日期范围,例如:
$scope.dateRange = [
"start": "2015-01-01",
"end": "2015-03-01"
];
在这种情况下,我只想显示用户选择的日期之间的数据,例如:
$scope.selectedEvents = [{
"date": "2015-01-01",
"name": "party"
}, {
"date": "2015-02-01",
"name": "birthday"
}, {
"date": "2015-03-01",
"name": "graduation"
}];
在这种情况下,用户选择了包含数据的日期范围,但如果用户选择的日期范围超出了可用数据,例如:
$scope.dateRange = [
"start": "2014-12-01",
"end": "2015-08-01"
];
然后我想返回以下内容:
$scope.events = [{
"date": "2014-12-01",
"name": ""
}, {
"date": "2015-01-01",
"name": "party"
}, {
"date": "2015-02-01",
"name": "birthday"
}, {
"date": "2015-03-01",
"name": "graduation"
}, {
"date": "2015-04-01",
"name": "wedding"
}, {
"date": "2015-05-01",
"name": ""
}, {
"date": "2015-06-01",
"name": ""
}, {
"date": "2015-07-01",
"name": ""
}, {
"date": "2015-08-01",
"name": ""
}];
【问题讨论】:
-
如果日期属性是日期而不是字符串,则可以简化。您可以使用下划线之类的库,并使用函数 _.filter 通过一些条件逻辑来实现您想要的功能,以添加缺失月份的数据。
-
@Anand 这些问题都不需要额外的库,而且都很简单
-
如果需要,我可以获取不同格式的日期。我正在寻找逻辑。
-
如果我理解正确的话,如果该时期没有数据,您想要创建额外的无名事件?
-
是的。您不需要任何库。可以使用本机代码完成。
标签: angularjs scope angularjs-scope angularjs-ng-repeat angular-filters