我有物品清单。每个项目都有日期和更多属性。 我使用下一个代码创建了按日期分组:
//分组功能
var indexedparts = [];
//create a groupBy Scheduled date
$scope.groupbyScheduledDateFilter = function(part) {
var partIsNew = indexedparts.indexOf(part.groupedScheduleTime) == -1;
if (partIsNew) {
indexedparts.push(part.groupedScheduleTime);
}
return partIsNew;
}
$scope.scheduledDatesToFilter = function() {
indexedparts = [];
return $scope.scheduledParticipants;
}
这是我的观看代码:
<ul class="list-unstyled zero-margin" ng-repeat="time in scheduledDatesToFilter() | filter: groupbyScheduledDateFilter">
<li ng-bind="time.groupedScheduleTime" class="color-bg-lighter-white-smoke manage-date-groupby"></li>
<ul buildit-sortable="onItemDroppedInScheduledList" class="list-group manage-plan-draggable-list zero-margin" ng-model="scheduledParticipants" connect-with="planned" id="scheduledList">
<li class="list-group-item hand-cursor" ng-repeat="part in scheduledParticipants | filter:searchScheduledParticipants | filter: {groupedScheduleTime: time.groupedScheduleTime}">
分组工作完美,直到我从其他列表拖动项目并将其放入“分组”列表。 列表完成渲染后,似乎是:
但是当我删除第一个项目时,分组不会更新:
如您所见,新项目未插入到分组容器中,并且已经位于分组列表中的2个项目将被复制并与新项目位于任何组之外。
我认为创建日期分组的过滤器不会再次运行。我需要以某种方式告诉角度“请刷新你重复”或类似“当你插入新项目时,使用过滤器做”。我怎么能这样做?
如果我的方法不对而且您的设计更好,我会很高兴听到。 谢谢 奥菲尔