我正在构建一个事件列表(自学Angular),并且我试图在年/月更改时有条件地在事件列表之间插入一年和一个月元素。
<body ng-controller="CalendarController">
<div ng-repeat="event in events">
<div ng-if="$first || year != prevYear ">
{{event.date | date: 'yyyy'}}
</div>
<div>
{{ event.name }}
</div>
<div>
{{ event.date | date: 'shortTime'}}
</div>
</div>
</body>
这里,如果元素是第一个元素,前面是一个年元素(最终月份相同),或者前一个事件的年份与当前事件不同。
(function(){
var app = angular.module('a2Events', []);
app.controller('CalendarController', function($scope, $http) {
$http.get('../data.json')
.success(function(data, status, headers, config) {
angular.forEach(data, function(value, key) {
value['date'] = Date.parse(value['date']);
});
$scope.events = data;
})
.error(function(data, status, headers, config) {
console.log(status);
});
});
})();
这里我只是用日期对象替换日期字符串,所有这些都是从json文件中提取的。该文件只是一个事件列表,按日期排序。我的假设是我可以将日期和月份与日期对象分开(使用$ index),只需使用ngif有条件地在需要的地方添加年/月元素,但我似乎无法像我一样访问日期对象我需要这样做。有没有人建议我做我需要的,或替代方法?
输出应该是这样的:
2015年
七月
事件1
事件2
八月
EVENT3
EVENT4
2016
一月
event5
等等
答案 0 :(得分:0)
我只是作弊而且做了
ng-if="event.year != events[$index - 1].year"