HTML5 Drag and Drop с Angular 5 - Проблемы с настройкой объекта dataTransfer

По сути, я пытаюсь перетащить строку из Kendo UI grid от одного углового компонента к другому div, который живет внутри отдельного углового компонента.

Этот ряд должен быть добавлен в мой div, однако у меня возникают проблемы с установкой dataTransfer объект, чтобы я мог читать в моей цели падения.

rows.forEach(item => {
 this.renderer.setAttribute(item, 'draggable', 'true');
 const dragStart$ = fromEvent(item, 'dragstart');
 const dragOver$ = fromEvent(item, 'dragover');
 const drop$ = fromEvent(item, 'drop');
 let that = this;
 sub.add(dragStart$.pipe(
  tap(({ dataTransfer }) => {
   try {
    
    let services = that.serviceList;
    const dataItem = services[draggedItemIndex]; // HOW TO SET draggedItemIndex ???   
    let data = JSON.stringify(dataItem);

    dataTransfer.setData('application/json', data);
    dataTransfer.setData("text/plain", "Drop on site-config node..");
   } catch (err) {
    // IE doesn't support MIME types in setData
   }
  })
 ).subscribe(({ target }) => {
  // rowIndex IS ONLY AVAILABLE HERE, SO I NEED TO UPDATE dataTransfer object
  draggedItemIndex = target.rowIndex;
  
 }));

и в моем целевом компоненте:

  onDrop(ev) {
    ev.preventDefault();    
    ev.dataTransfer.dropEffect = "move";
    ev.dataTransfer.getData('application/json')
    ev.dataTransfer.getData('text')
  }

0 ответов

Другие вопросы по тегам