Angular 7在数组中移动对象的结果为-1索引,将不保存位置

时间:2019-02-18 16:35:59

标签: arrays angular move angular7

因此,我正在工作任务板上,并且正在制作一个将所选任务移至该容器顶部/底部的按钮。它工作正常,但不保存位置,重新加载时它处于先前位置。我注意到当我这样做时,数组的末尾有一个-1索引。我已经在网上搜索了此问题,但找不到类似的内容。

这是该功能的代码:

public moveToBottom(container, index) {
this.container = container;
var lastIndex = (this.container.length -1);
this.loader.show();
transferArrayItem(this.container, this.container, index, lastIndex);

// this.verifyOrder(lastIndex);
this.loader.hide();
console.log(index, lastIndex, container)

我认为这与container.length -1有关,但这是我看到的获取最后一个索引的唯一方法。我只需要索引号,而不是实际对象。

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

您只需要使用transferArrayItem函数。

例如,有一系列电影this.movies。 因此,按钮单击功能将如下所示:

moveToTheEnd(index) {
    moveItemInArray(this.movies, index, this.movies.length - 1);
}

和HTML:

<div cdkDropList class="example-list" (cdkDropListDropped)="drop($event)">
  <div *ngFor="let movie of movies; let index = index" style="display: flex; align-items: center">
      <div class="example-box"  cdkDrag>{{movie}}</div>
      <div (click)="moveToTheEnd(index)" style="background: red">Move to the end</div>
  </div>
</div>

这里是示例:https://stackblitz.com/edit/angular-vkwb8v