npm install --save ng-drag-drop-list
Add DragDropListModule
to your list of module imports:
import {DragDropListModule} from 'ng-drag-drop-list';
@NgModule({
imports: [
...
DragDropListModule
],
...
})
export class AppModule { }
Create an array in your component (of colors for example)
import { Component } from '@angular/core';
@Component({
...
templateUrl: './app.component.html',
})
export class AppComponent {
public arr:string[] = ["blue","red","greenyellow","purple","grey"];
}
use the directive in your html templates:
<template ngFor [ngForOf]="arr" let-item let-index="index">
<div [dragDropList]="[index, array]" [style.background]="item" tabindex="0">{{item}}({{index }})</div>
</template>
[dragDropList]="[index, array]"
- index and array from *ngFor (
item of array; let index="index"
)
adding classes for dragged & drag-overed:
[dragged]
and:
[drag-overed]
for example:
.my-dragged-class{
opacity: .5;
}
.my-dragged-over-class{
border: 1px solid black;
}
<div [dragDropList]="[index, array]" dragged="my-dragged-class" drag-overed="my-dragged-over-class">{{index}}</div>