列表和分组拖放

时间:2014-07-06 13:51:09

标签: html html5 angularjs jquery-ui

我有物品清单。每个项目都有日期和更多属性。 我使用下一个代码创建了按日期分组:

//分组功能

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}">

分组工作完美,直到我从其他列表拖动项目并将其放入“分组”列表。 列表完成渲染后,似乎是:

valid grouped list

但是当我删除第一个项目时,分组不会更新:

invalid list

如您所见,新项目未插入到分组容器中,并且已经位于分组列表中的2个项目将被复制并与新项目位于任何组之外。

我认为创建日期分组的过滤器不会再次运行。我需要以某种方式告诉角度“请刷新你重复”或类似“当你插入新项目时,使用过滤器做”。我怎么能这样做?

如果我的方法不对而且您的设计更好,我会很高兴听到。 谢谢 奥菲尔

0 个答案:

没有答案