如何在进行数组拼接时调整索引

时间:2015-08-01 13:36:17

标签: javascript angularjs

当我删除不是最后一个索引的索引

时,我有一个在视图中断的照片管理器

型号:

var array = [{id:1, img:"index0"},{id:2, img:"index1"},{id:3, img:"index2"}]

如果我这样做..

array.splice(0);

索引1和2将被隐藏,所以当我调查时我知道索引1和2没有调整到索引0和1,这可能就是它突破的原因自从我使用ng-repeat以来的观点,我该如何解决这个问题。

  <div class="col" ng-repeat="pic in pics track by $index">
    <img ng-click="delete()" ng-src="https://s3-ap-southeast-1.amazonaws.com/sample/posts/{{pic.id}}/{{pic.img}}.jpg"></img>
  </div>

控制器:

//HTTP REQUEST --> for brevity i didn't include the service
    $scope.delete = function(){
    PostService.DeletePic()
      .success(function (data) {
     $scope.pics.splice(index);
              }).
            error(function(error,status) {

          }) 
    }

1 个答案:

答案 0 :(得分:1)

调用array.splice(0);不会删除数组中的任何元素。

  

语法:array.splice(start, deleteCount[, item1[, item2[, ...]]])

     

deleteCount一个整数,指示要删除的旧数组元素的数量。如果deleteCount为0,则不删除任何元素。在这种情况下,您应该至少指定一个新元素。如果deleteCount大于从start开始的数组中剩余的元素数,则将删除通过数组末尾的所有元素。

     

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

您需要致电array.splice(0, 1);以删除第一个元素。这应该可以解决你的“索引不调整”问题。