在ngfor中交换数据后获取新数组

时间:2018-11-05 06:51:08

标签: javascript angular

我正在使用角度4 +

这是我的数组

我使用ngfor使用可拖动 div

填充数据
['MODEL', 'PART', 'CUSTOMER'];

每当我拖动/交换div之一然后新数组变成类似的东西时,我想要什么

['PART', 'MODEL', 'CUSTOMER'];

不能为此找到任何解决办法

我的朋克

https://plnkr.co/edit/oy2QWJ?p=preview

1 个答案:

答案 0 :(得分:1)

html的{​​{1}}外部更新scope时,您将需要付出额外的努力来确保angular的状态是同步的。您应该直接更新template/component,由于它是2种方式的绑定,model将根据此方法自动呈现。

您需要进行以下更新

JS

  • 添加私有变量html
  • 更新dragIndex函数(设置dragIndex-被拖动元素的索引)

    drag
  • 更新public drag (index) { this.dragIndex = index; } 函数(在拖放索引处交换数组中的值)

    drop

HTML

    未定义传入函数
  • public drop (ev, index: number) { ev.preventDefault(); let temp = this.homePageSearchTiles[this.dragIndex]; this.homePageSearchTiles[this.dragIndex] = this.homePageSearchTiles[index]; this.homePageSearchTiles[index] = temp; console.log(this.homePageSearchTiles); } 。在i中将i定义为index,并在ngFordrag函数中将其传递

    drop

请找到工作版本Plunker