ng2 dragula устанавливает новое значение индекса после переупорядочения - PullRequest
0 голосов
/ 23 января 2019

Я использую пакет ng2-dragula для перетаскивания объектов, но после изменения порядка элементов списка не могу получить обновленный индекс массива. Вот код, что я пытаюсь.

HTML

      <ul [dragula]='"bag-items"' ([dragulaModel])="contactArray">
                  <li *ngFor="let field of contactArray" >
                    <label>{{field.role}}</label>
                 </li>
      </ul>

JS

import { DragulaService   } from "ng2-dragula";

@Component({
  selector: 'app-edit-project',
  templateUrl: './edit-project.component.html',
  styleUrls: ['./edit-project.component.css'],
  providers: [    
      DragulaService
  ]
})

export class ProjectComponent implements OnInit {

constructor(private dragula:DragulaService) {
    for(let i =0; i<=this.contactArray.length; i++) {
        console.log(this.contactArray[i].index)
   }
}

}

когда я пытаюсь утешить this.contactArray [i] .index после переупорядочения списка. Не работает должным образом.

Default order looks like this


A
B
C
D  

{ Value :   A, index: 1 } 
{ Value :   B, index: 2 } 
{ Value :   C, index: 3 } 
{ Value :   D, index: 4 } 

После того, как я переупорядочу, нужно обновить новый индекс, как показано ниже для обновления API,

D
B
C
A 

{ Value :   D, index: 1 } 
{ Value :   B, index: 2 } 
{ Value :   C, index: 3 } 
{ Value :   A, index: 4 } 

this.http.post (API_URL + 'product / update', BodywithcontactArray);

Любой совет эксперта, пожалуйста.

1 Ответ

0 голосов
/ 23 января 2019

Вы можете получить соответствующее значение объекта

this.dragula.drop.subscribe(value => {
      // here you have to do swap index manually
console.log(value[0]);

console.log(value[1]);

console.log(value[2]);

console.log(value[3]);
});
...