如何从ng-repeat获取下一个对象

时间:2015-11-24 23:01:48

标签: angularjs

我正在显示项目列表,当我删除当前项目时,我该如何获取下一项?这是我的代码:

<div ng-repeat="item in itemList = (itemsList() |filter:{status: code}|orderBy: 'Time'| orderBy:'sortingOrder')" ng-init="initCurrentItem(item,$index)">    
<div id="itemRow" ng-click="selectedItem(item,$index)" 
                  ng-class="{'active':getCurrentItem().index === $index}">
     <div id="listRowContent">                       
     <div>{{item.name}}</div>
     <div>{{item.type}}/div>
     <div> {{item.Time}}</div>

显示项目列表,我在其他部分显示详细项目。这是我的控制器:

$scope.itemsList = function () {
        return ListService.getItemsList();
    };

    $scope.initCurrentItem = function(item,index){

      if(index === 0){          
        $scope.selectedList(item,index);
      }  
    };

    $scope.selectedList= function(currentList,index){    
        currentList.index = index;
       $scope.currentListDetails = currentList;
        }
    };
$scope.getCurrentMail = function(){
return $scope.currentListDetails;
}

在我的控制器中,我从服务获取itemslist并在一个部分中显示列表,并使用getCurrentItem()突出显示第一个元素。我在另一部分显示详细列表。现在,当我选择一个项目并将其删除时,它突出显示下一个项目,但仍在详细部分中显示已删除的列表项目详细信息。如何获取下一个元素,以便将该对象分配到我的currentListDetails

1 个答案:

答案 0 :(得分:0)

我认为删除所选项目后,您的列表不会更新。您可以“重新加载”,并通过重新分配列表来获取所有列表,即 SELECT wp_posts.post_title, wp_postmeta.meta_value AS 'Contact Details' FROM wp_posts LEFT JOIN wp_term_relationships ON ( wp_posts.ID = wp_term_relationships.object_id ) LEFT JOIN wp_term_taxonomy ON ( wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id ) LEFT JOIN wp_postmeta ON ( wp_postmeta.post_id = wp_posts.ID ) WHERE wp_posts.post_status = 'publish' AND wp_postmeta.meta_key = 'contact' AND wp_term_taxonomy.term_id =2 ORDER BY post_title; ; 或者当您删除元素时,您也可以在当前列表$scope.currentList = whateverservice.getList()中搜索, 然后使用splice(int,int)方法删除该元素。我更喜欢第二种方法,只有一种请求,而第一种方法需要2次请求。